From 84aaaccc01d0fb57897316df5a65c8b91ca5af8f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 23:01:45 +0000 Subject: [PATCH 1/6] Add Cycle 7 Stage D word-boundary newline catalog v5. Freeze exploratory seed 890000 and topic document structure before generation. Catalog v5 adds Family 12, the collapse-resistant analogue of Cycle 6 general word spacing, instead of another lexical whitelist. Cover-greedy v4 is unchanged. Seed 880000 stays unseen. Co-authored-by: Byte271 --- docs/cycle7/README.md | 21 ++- docs/cycle7/durable-families.md | 26 +++- docs/cycle7/literature.md | 4 +- docs/cycle7/live-state-audit.md | 16 +- docs/cycle7/seed-ledger.md | 15 +- fuckmark/cycle7/density.py | 3 + fuckmark/cycle7/durable_rules.py | 23 ++- fuckmark/cycle7/fixtures.py | 12 ++ fuckmark/cycle7/ledger.py | 17 ++- fuckmark/cycle7/registry.py | 5 +- fuckmark/cycle7/stage_b.py | 2 + fuckmark/cycle7/stage_d.py | 92 ++++++++++++ fuckmark/cycle7_stage_d_hf.py | 150 +++++++++++++++++++ fuckmark/transforms/cycle7_quote_policy.py | 7 +- fuckmark/transforms/format_rules.py | 117 +++++++++++++++ fuckmark/transforms/registry.py | 6 +- tests/test_cycle7_ledger.py | 9 +- tests/test_cycle7_stage_b.py | 24 ++- tests/test_cycle7_stage_c_families.py | 8 +- tests/test_cycle7_stage_d_families.py | 161 +++++++++++++++++++++ 20 files changed, 666 insertions(+), 52 deletions(-) create mode 100644 fuckmark/cycle7/stage_d.py create mode 100644 fuckmark/cycle7_stage_d_hf.py create mode 100644 tests/test_cycle7_stage_d_families.py diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 5f8462e4..36ecfe5b 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -10,8 +10,8 @@ Cycle 8 (`docs/cycle8/`) is the exact-visible-projection generation. Do not prom See `docs/cycle7/live-state-audit.md`. Independent GitHub inspection: -- `main` HEAD `af341884fff211caeb24649a6ce79305c3491c6c` (PR #95 squash-merge) -- Cycle 6 freeze parent `ddccd74a9e0e710085b385fed98959f2730b9d60` +- `main` HEAD `d7eeb0f905b7046ddc4a4d8281354f06713d58b0` (PR #96 squash-merge) +- Cycle 6 freeze ancestor `ddccd74a9e0e710085b385fed98959f2730b9d60` - PR #93 and PR #94 merged - Recovery run `32886342498` success - Aggregate hash `30577aafaffd0c50f0ddb384a4509eb0bb93e4374bf39704869ddbf5053186a4` @@ -33,9 +33,10 @@ See `docs/cycle7/seed-ledger.md` and `fuckmark/cycle7/ledger.py`. | --- | --- | --- | | Exploratory development (Stage A) | `810000` | used; do not keep expanding rules against it | | Exploratory development / rule construction (Stage B1) | `860000` | used; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage C1) | `870000` | active; topic frozen as `measurement protocol` | +| Exploratory development / rule construction (Stage C1) | `870000` | used; do not keep expanding rules against it | +| Exploratory development / rule construction (Stage D1) | `890000` | active; topic frozen as `document structure` | | Validation development (Stage B3) | `820000` | used as Stage B3 disjoint validation; do not retune on it | -| Validation development (Stage C, reserved) | `880000` | unseen until a v4 freeze | +| Validation development (Stage C/D, reserved) | `880000` | unseen until a catalog freeze | | Confirmation reserved | `830000`, `840000`, `850000` | must not be inspected | Confirmation seeds were chosen as unused 10k blocks before any Cycle 7 detector look. @@ -52,7 +53,7 @@ The Cycle 6 frozen sanitizer module is unchanged. ## Durable transform families -See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v4`. +See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v5`. Stage A (`v2`) families: @@ -74,7 +75,11 @@ Stage C (`v4`) additions, aimed at higher natural site density after Stage B sho 10. Clause punctuation newline (`,` / `;` / `:` + space ↔ mark + LF). 11. Optional `of` after `all` / `both` / `half` before a closed determiner/possessive. -These change tokens without relying on repeated U+0020. They survive ASCII whitespace collapse by construction. Family 3 also survives NFKC and Cf-strip. Family 4 is a formatting channel: VERIFIED against the six Cycle 7 sanitizer variants, not against an unlisted reflow sanitizer. +Stage D (`v5`) addition, aimed at a collapse-resistant channel denser than clause punctuation rather than another lexical whitelist: + +12. Word-boundary newline (ASCII space between two alphabetic words of length ≥2 ↔ LF). + +These change tokens without relying on repeated U+0020. They survive ASCII whitespace collapse by construction. Family 3 also survives NFKC and Cf-strip. Families 4, 10, and 12 are formatting channels: VERIFIED against the six Cycle 7 sanitizer variants, not against an unlisted reflow sanitizer. Quote interiors may receive these durable edits under `quote-container-durable-v1` without changing quote delimiters. Cycle 6 `quote-container-surface-spacing-v1` still admits only spacing inside quotes. @@ -96,6 +101,10 @@ Seed `820000` is spent as validation. Seed `880000` is the next unused validatio Stage C1 on seed `870000` (topic frozen as `measurement protocol`) added clause-punctuation newlines and optional quantifier `of`. Mean durable candidates: **4.75** (still the Stage B four-site regime). Quantifier `of` mean **0.00**. Collapse-surviving intact/root **0.715**. Detector: durable **3/4** after collapse; Cycle 6 spacing **4/4** after collapse. Overall: **`INSUFFICIENT_EVIDENCE`**. Seed `880000` was not inspected. Details: `docs/cycle7/stage-c-decision.md`. +## Stage D + +Stage D1 on seed `890000` (topic frozen as `document structure`) adds word-boundary newlines as a denser collapse-resistant layout channel. This is development-only. Seed `880000` is not inspected. The D1 decision document is written only after density, geometry, and detector artifacts exist. + Not claimed: - Cycle 7 formal confirmation diff --git a/docs/cycle7/durable-families.md b/docs/cycle7/durable-families.md index 3a4f7c8e..75bb7745 100644 --- a/docs/cycle7/durable-families.md +++ b/docs/cycle7/durable-families.md @@ -1,6 +1,6 @@ # Cycle 7 durable families -Catalog identity: `cycle7-durable-rule-catalog-v4` (Stage C development). Families 1–3 remain the frozen Stage A `v2` set; families 4–9 remain the frozen Stage B `v3` set. Cycle 6 `quote_safe_zrd` ruleset hash is unchanged. +Catalog identity: `cycle7-durable-rule-catalog-v5` (Stage D development). Families 1–3 remain the frozen Stage A `v2` set; families 4–9 remain the frozen Stage B `v3` set; families 10–11 remain the frozen Stage C `v4` set. Cycle 6 `quote_safe_zrd` ruleset hash is unchanged. All families below are deterministic, detector-blind, key-blind, and non-neural. Cycle 6 `quote_safe_zrd` ruleset hash is unchanged. @@ -227,3 +227,27 @@ False positives blocked: `all of them` / `both of us` / `half of it` (pronouns r EXTERNAL-VALIDATION-ONLY: Cambridge Grammar of English / English Grammar Today: `all`, `both`, and `half` may appear with or without `of` before articles, demonstratives, and possessives, with no meaning change. Pronoun objects keep obligatory `of`. That literature is not a local TinyDev density measurement. +## Family 12 — word-boundary newline + +Construction: `word_boundary_newline`. + +This is the Stage D density primitive. It is not another closed lexical whitelist. It is the collapse-resistant analogue of Cycle 6 general word spacing: replace a single ASCII space between two alphabetic words with a single LF, or the reverse. + +Precondition: both sides are ASCII alphabetic runs of length at least 2. Single-letter words (`a`, `I`), digits, punctuation-adjacent spaces (`. `, `, `, `: `), and already-newline punctuation sites do not match. Protected spans still block overlapping edits. + +Rewrite: `The protocol` ↔ `The\nprotocol`. + +Inverse: the opposite direction. + +Tokenizer: GPT-2 `The protocol remains fixed` versus `The\nprotocol remains fixed` differs. VERIFIED on the frozen GPT-2 revision when transformers is present. + +Whitespace collapse: `whitespace-collapse-v1` preserves LF. The rewrite still differs after `ws_collapse` and `ws_collapse_nfkc_cf_strip`. VERIFIED on fixtures. + +Sanitizer note: this is a layout/formatting channel, denser than Families 4 and 10. HYPOTHESIS: a wrap/reflow sanitizer would erase it. It is admitted because Stages B and C showed punctuation-newline was the only durable family with repeated natural sites, and those sites were still too sparse (mean ~4–4.75) to replace Cycle 6 spacing after collapse. + +Conflict geometry: adjacent word-boundary spaces do not overlap (each candidate is the one-character separator). Cover-greedy v4 can spend the B14 budget on up to 14 wraps. Format punctuation newlines remain separate spans. + +Not admitted: extra U+0020 insertion, NBSP, ZWSP, wrapping after length-1 words, or converting punctuation spaces that Families 4 and 10 already own. + +Adjacent-sentence transposition remains a HYPOTHESIS for a later stage. It is not in catalog v5, so cover-greedy cannot spend the B14 budget on one long overlapping swap that would starve this dense channel. + diff --git a/docs/cycle7/literature.md b/docs/cycle7/literature.md index cbe3c9bc..e3df2978 100644 --- a/docs/cycle7/literature.md +++ b/docs/cycle7/literature.md @@ -51,5 +51,7 @@ REJECTED: running-text `and` to `&` (not prose-equivalent under CMOS/AP). U+2026 EXTERNAL-VALIDATION-ONLY. Cambridge English Grammar Today: `all`, `both`, and `half` allow optional `of` before articles, demonstratives, and possessives (`all the` / `all of the`) with no meaning change; `of` is obligatory before personal pronouns (`all of them`). Family 11 encodes that bound. That literature is not a local density measurement. -HYPOTHESIS. Clause commas are much more common than sentence terminals on ordinary prose, so Family 10 should raise layout-channel density relative to Family 4 alone. Whether that is enough to replace Cycle 6 spacing after `whitespace-collapse-v1` is a Stage C measurement, not a theorem. +HYPOTHESIS. Clause commas are much more common than sentence terminals on ordinary prose, so Family 10 should raise layout-channel density relative to Family 4 alone. Stage C on seed `870000` measured mean 1.50 clause sites and did not escape the four-site regime. VERIFIED on that seed only. + +HYPOTHESIS. Replacing ordinary word-boundary U+0020 with LF is the collapse-resistant analogue of Cycle 6 general word spacing. `whitespace-collapse-v1` preserves LF, so the token change should remain after that sanitizer. Whether 14 such wraps destroy enough GPT-2 n-gram windows on TinyDev 64-token text is a Stage D measurement, not a theorem. HYPOTHESIS: a wrap/reflow sanitizer would erase it. diff --git a/docs/cycle7/live-state-audit.md b/docs/cycle7/live-state-audit.md index 394bf3a2..ca7d7e9b 100644 --- a/docs/cycle7/live-state-audit.md +++ b/docs/cycle7/live-state-audit.md @@ -62,17 +62,19 @@ Live GitHub still has `main` at `ddccd74a9e0e710085b385fed98959f2730b9d60`. Open Hygiene-only follow-up `6e587ea016cf5a2f4e7845a5550f97e0b5d92b34` made Release Readiness Baseline and CI succeed after `tests/test_repository_hygiene.py` rejected comments/docstrings in new Python. Cycle 6 sealed confirmation on that SHA succeeded. Codex review was usage-limited, not a code finding. CodeRabbit did not auto-review (repository star threshold). -## Continuation (2026-08-25, after PR #95 squash-merge) +## Continuation (2026-08-25, after PR #96 squash-merge) -PR #95 squash-merged at 2026-08-25 21:23:21 UTC after all 41 head checks succeeded and `mergeStateStatus` was `CLEAN`. No unresolved review threads. +PR #96 squash-merged at 2026-08-25 21:26:26 UTC. Title remained `Cycle 7 Stage B: high-density durable catalog v3`; the branch also contained Stage C catalog v4 and C1 evidence. -Verified `main` HEAD: `af341884fff211caeb24649a6ce79305c3491c6c` +Verified `main` HEAD: `d7eeb0f905b7046ddc4a4d8281354f06713d58b0` -Subject: `Cycle 7 Stage A: collapse-resistant durable transforms (#95)` +Subject: `Cycle 7 Stage B: high-density durable catalog v3 (#96)` -Parent freeze commit remains `ddccd74a9e0e710085b385fed98959f2730b9d60`. Cycle 6 formal result is unchanged: `NONZERO_RESIDUAL` 7/192. +Cycle 6 formal result is unchanged: `NONZERO_RESIDUAL` 7/192. -Open PR after the merge: [#96](https://github.com/byte271/FuckMark/pull/96) on `cursor/cycle7-stage-b-density-3fb1`, rebased onto `main` and retargeted. Open issues: none. +Open PR after the merge: [#97](https://github.com/byte271/FuckMark/pull/97) (`cursor/product-visible-invariance-2d93`, draft, Cycle 8 / user-visible invariance). That work is separate from Cycle 7 catalog development. -Changing the PR base from `research/cycle7-durable-transforms` to `main` does not emit `pull_request` `synchronize`, so Actions on the rebase SHA must be retriggered by a follow-up push. Do not treat a CodeRabbit-only success as full CI. +Stage C1 on seed `870000` was `INSUFFICIENT_EVIDENCE` (mean durable candidates 4.75; durable detector 3/4 after collapse). Seed `880000` was not inspected. + +Stage D continues on branch `cursor/cycle7-stage-d-wrap-3fb1` from this `main`, with exploratory seed `890000` and topic `document structure` frozen before generation. diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index fe06f2b7..9fbec0cf 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -1,8 +1,8 @@ # Cycle 7 seed ledger -Ledger identity: `cycle7-seed-ledger-v3` (`fuckmark/cycle7/ledger.py`). +Ledger identity: `cycle7-seed-ledger-v4` (`fuckmark/cycle7/ledger.py`). -Seeds were assigned **before** Cycle 7 detector scoring. Seed `860000` and topic `independent replication` were frozen in the ledger **before** any Stage B generation or detector look. Seed `870000` and topic `measurement protocol` were frozen **before** any Stage C generation or detector look. Seed `880000` and topic `independent check` were frozen as the next unused validation split **before** any Stage C validation generation. +Seeds were assigned **before** Cycle 7 detector scoring. Seed `860000` and topic `independent replication` were frozen in the ledger **before** any Stage B generation or detector look. Seed `870000` and topic `measurement protocol` were frozen **before** any Stage C generation or detector look. Seed `880000` and topic `independent check` were frozen as the next unused validation split **before** any Stage C validation generation. Seed `890000` and topic `document structure` were frozen **before** any Stage D generation or detector look. ## Spent (forbidden) @@ -19,12 +19,13 @@ Seeds were assigned **before** Cycle 7 detector scoring. Seed `860000` and topic | --- | --- | --- | | Exploratory development (Stage A) | 810000 | yes, development only; do not keep expanding rules against it | | Exploratory development / rule construction (Stage B1) | 860000 | used; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage C1) | 870000 | yes, development only; frozen topic `measurement protocol` | +| Exploratory development / rule construction (Stage C1) | 870000 | used; do not keep expanding rules against it | +| Exploratory development / rule construction (Stage D1) | 890000 | yes, development only; frozen topic `document structure` | | Validation development (Stage B3) | 820000 | used as Stage B3 disjoint validation; do not retune on it | -| Validation development (Stage C, reserved) | 880000 | **not yet inspected**; reserved until catalog v4 is frozen | +| Validation development (Stage C/D, reserved) | 880000 | **not yet inspected**; reserved until a catalog freeze | | Confirmation reserved | 830000, 840000, 850000 | **no** until a later frozen confirmation protocol | -Do not promote 810000, 820000, 860000, 870000, or 880000 into confirmation after seeing scores. +Do not promote 810000, 820000, 860000, 870000, 880000, or 890000 into confirmation after seeing scores. Stage A generation used 810000 with pair stride 32, matching TinyDev pairing, one pair per domain, topic `reproducibility` chosen without a detector look. @@ -32,5 +33,7 @@ Stage B1 generation used 860000 with the same pairing rule and topic `independen Validation generation used 820000 with topic `held-out evaluation`. That topic was frozen before validation generation. Do not retune catalog v3 on 820000. A later revised mechanism must not recycle 820000; Stage C reserved 880000 instead. -Stage C1 generation uses 870000 with topic `measurement protocol`. Rule-construction generation must call `assert_rule_construction_seed(870000)`. +Stage C1 generation used 870000 with topic `measurement protocol`. That seed is now used. Do not retune catalog v4 on 870000. + +Stage D1 generation uses 890000 with topic `document structure`. Rule-construction generation must call `assert_rule_construction_seed(890000)`. Seed `880000` stays unseen until a catalog freeze. diff --git a/fuckmark/cycle7/density.py b/fuckmark/cycle7/density.py index 15a6cc90..f08e1780 100644 --- a/fuckmark/cycle7/density.py +++ b/fuckmark/cycle7/density.py @@ -42,6 +42,7 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: parenthetical_ids = _prefix_ids(rule_ids, ("cycle7-syntax-parenthetical-",)) coord_comma_ids = _prefix_ids(rule_ids, ("cycle7-syntax-coord-comma-",)) quantifier_ids = _prefix_ids(rule_ids, ("lexical-quantifier-",)) + word_boundary_ids = _prefix_ids(rule_ids, ("cycle7-word-boundary-",)) tokenish = max(1, len(text.split())) return { "sample_id": sample_id, @@ -61,6 +62,7 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: "parenthetical_candidate_count": len(parenthetical_ids), "coord_comma_candidate_count": len(coord_comma_ids), "quantifier_of_candidate_count": len(quantifier_ids), + "word_boundary_candidate_count": len(word_boundary_ids), "protected_blocked_count": sum( 1 for rejection in enumeration.rejections if rejection.reason.value == "protected_overlap" ), @@ -82,6 +84,7 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: "parenthetical_rule_ids": parenthetical_ids, "coord_comma_rule_ids": coord_comma_ids, "quantifier_of_rule_ids": quantifier_ids, + "word_boundary_rule_ids": word_boundary_ids, } diff --git a/fuckmark/cycle7/durable_rules.py b/fuckmark/cycle7/durable_rules.py index 992b3a17..14631652 100644 --- a/fuckmark/cycle7/durable_rules.py +++ b/fuckmark/cycle7/durable_rules.py @@ -10,7 +10,7 @@ zrd_forward_contraction_extension_rules, zrd_reverse_contraction_extension_rules, ) -from ..transforms.format_rules import FormatBoundaryRule +from ..transforms.format_rules import FormatBoundaryRule, WordBoundaryNewlineRule from ..transforms.lexical_rules import LexicalConstruction, LexicalTemplateRule, development_lexical_rules from ..transforms.rules import LiteralTransformRule from ..transforms.schema import TransformFamily, TransformTier @@ -18,7 +18,8 @@ CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v3" -CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v4" +CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v4" +CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v5" @dataclass(frozen=True, slots=True) @@ -541,6 +542,23 @@ def cycle7_clause_punctuation_rules() -> tuple[FormatBoundaryRule, ...]: return tuple(rules) +def cycle7_word_boundary_rules() -> tuple[WordBoundaryNewlineRule, ...]: + return ( + WordBoundaryNewlineRule.create( + rule_id="cycle7-word-boundary-newline", + version="v1", + source=" ", + replacement="\n", + ), + WordBoundaryNewlineRule.create( + rule_id="cycle7-word-boundary-space", + version="v1", + source="\n", + replacement=" ", + ), + ) + + def cycle7_quantifier_of_rules() -> tuple[LexicalTemplateRule, ...]: rules: list[LexicalTemplateRule] = [] for quantifier, determiners in CYCLE7_QUANTIFIER_DETERMINERS: @@ -679,6 +697,7 @@ def cycle7_durable_rules() -> tuple[object, ...]: *cycle7_discourse_comma_rules(), *cycle7_format_boundary_rules(), *cycle7_clause_punctuation_rules(), + *cycle7_word_boundary_rules(), *cycle7_quantifier_of_rules(), *cycle7_complementizer_that_rules(), *cycle7_parenthetical_adverb_rules(), diff --git a/fuckmark/cycle7/fixtures.py b/fuckmark/cycle7/fixtures.py index b184343a..32a55a03 100644 --- a/fuckmark/cycle7/fixtures.py +++ b/fuckmark/cycle7/fixtures.py @@ -62,6 +62,11 @@ "Half the notes stayed and all my checks passed." ) +WORD_BOUNDARY_RICH = ( + "Measurement protocol remains fixed across independent replications of the " + "same experimental apparatus. Calibration uses a held-out population." +) + QUOTE_INTERIOR = 'He answered, "They are not finished and we do not agree."' AMBIGUOUS_NEGATIVES = ( @@ -113,5 +118,12 @@ def stage_c_fixture_samples() -> tuple[tuple[str, str], ...]: ) +def stage_d_fixture_samples() -> tuple[tuple[str, str], ...]: + return ( + *stage_c_fixture_samples(), + ("word-boundary-rich", WORD_BOUNDARY_RICH), + ) + + def rejection_reason_values() -> tuple[str, ...]: return tuple(reason.value for reason in CandidateRejectionReason) diff --git a/fuckmark/cycle7/ledger.py b/fuckmark/cycle7/ledger.py index 6f7529db..5a875a03 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -6,7 +6,7 @@ from ..hashing import sha256_json -CYCLE7_LEDGER_VERSION = "cycle7-seed-ledger-v3" +CYCLE7_LEDGER_VERSION = "cycle7-seed-ledger-v4" CYCLE7_EXPLORATORY_ROLE = "exploratory_development" CYCLE7_VALIDATION_ROLE = "validation_development" CYCLE7_CONFIRMATION_RESERVED_ROLE = "confirmation_reserved" @@ -27,9 +27,10 @@ CYCLE7_STAGE_A_EXPLORATORY_SEED_BASE = 810_000 CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE = 860_000 CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE = 870_000 -CYCLE7_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000) -CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000, 860_000) -CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (870_000,) +CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE = 890_000 +CYCLE7_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000, 890_000) +CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000) +CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (890_000,) CYCLE7_VALIDATION_SEED_BASE = 820_000 CYCLE7_STAGE_C_VALIDATION_SEED_BASE = 880_000 CYCLE7_VALIDATION_SEED_BASES = (820_000, 880_000) @@ -40,6 +41,7 @@ CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) CYCLE7_STAGE_B1_TOPIC = "independent replication" CYCLE7_STAGE_C1_TOPIC = "measurement protocol" +CYCLE7_STAGE_D1_TOPIC = "document structure" _ALL_BLOCKED = frozenset( ( @@ -66,6 +68,8 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "stage_b1_topic": CYCLE7_STAGE_B1_TOPIC, "stage_c1_exploratory_seed_base": CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, "stage_c1_topic": CYCLE7_STAGE_C1_TOPIC, + "stage_d1_exploratory_seed_base": CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, + "stage_d1_topic": CYCLE7_STAGE_D1_TOPIC, "validation_development_seed_base": CYCLE7_VALIDATION_SEED_BASE, "validation_development_seed_bases": list(CYCLE7_VALIDATION_SEED_BASES), "used_validation_development_seed_bases": list(CYCLE7_USED_VALIDATION_SEED_BASES), @@ -85,13 +89,16 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Seed 870000 and topic 'measurement protocol' were frozen before " "any Stage C generation or detector look. " "Seed 880000 and topic 'independent check' were frozen before " - "any Stage C validation generation or detector look." + "any Stage C validation generation or detector look. " + "Seed 890000 and topic 'document structure' were frozen before " + "any Stage D generation or detector look." ), "spent_corpus_rule": ( "Do not use 720000, 730000, 760000, 770000, or 780000 as " "Cycle 7 development, tuning, or confirmation data. " "Do not keep expanding transform rules against 810000 or 860000. " "Do not retune on validation seed 820000. " + "Do not retune on 870000. " "Do not inspect 830000, 840000, or 850000." ), } diff --git a/fuckmark/cycle7/registry.py b/fuckmark/cycle7/registry.py index 059ca6e7..5bf6e31f 100644 --- a/fuckmark/cycle7/registry.py +++ b/fuckmark/cycle7/registry.py @@ -11,9 +11,10 @@ from .durable_rules import cycle7_durable_rules -CYCLE7_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v4" -CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v3" CYCLE7_STAGE_B_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v3" +CYCLE7_STAGE_C_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v4" +CYCLE7_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v5" +CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v4" def cycle7_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py index 97de4e7b..d6dcf711 100644 --- a/fuckmark/cycle7/stage_b.py +++ b/fuckmark/cycle7/stage_b.py @@ -26,6 +26,7 @@ def summarize_density_rows(rows: Sequence[Mapping[str, object]]) -> dict[str, ob parenthetical_counts = tuple(int(row["parenthetical_candidate_count"]) for row in rows) coord_comma_counts = tuple(int(row["coord_comma_candidate_count"]) for row in rows) quantifier_counts = tuple(int(row.get("quantifier_of_candidate_count", 0)) for row in rows) + word_boundary_counts = tuple(int(row.get("word_boundary_candidate_count", 0)) for row in rows) return { "sample_count": len(rows), "mean_candidate_count": sum(counts) / len(counts), @@ -39,6 +40,7 @@ def summarize_density_rows(rows: Sequence[Mapping[str, object]]) -> dict[str, ob "mean_parenthetical_candidate_count": sum(parenthetical_counts) / len(parenthetical_counts), "mean_coord_comma_candidate_count": sum(coord_comma_counts) / len(coord_comma_counts), "mean_quantifier_of_candidate_count": sum(quantifier_counts) / len(quantifier_counts), + "mean_word_boundary_candidate_count": sum(word_boundary_counts) / len(word_boundary_counts), "zero_candidate_rows": sum(count == 0 for count in counts), } diff --git a/fuckmark/cycle7/stage_d.py b/fuckmark/cycle7/stage_d.py new file mode 100644 index 00000000..de340d2f --- /dev/null +++ b/fuckmark/cycle7/stage_d.py @@ -0,0 +1,92 @@ +from __future__ import annotations + +from collections.abc import Mapping, Sequence + +from ..hashing import sha256_json +from .density import durable_density_table +from .stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows + + +CYCLE7_STAGE_D_DECISION_VERSION = "cycle7-stage-d-decision-v1" + + +def classify_stage_d_density( + *, + density_summary: Mapping[str, object], + collapsed_intact_mean: float | None = None, + source_root_mean: float | None = None, +) -> dict[str, object]: + mean_candidates = float(density_summary["mean_candidate_count"]) + mean_format = float(density_summary["mean_format_candidate_count"]) + mean_wrap = float(density_summary.get("mean_word_boundary_candidate_count", 0.0)) + residual_mean = mean_candidates - mean_format - mean_wrap + reasons: list[str] = [] + if mean_wrap >= 8: + reasons.append("mean word-boundary newline candidate count is at least 8 per sample") + elif mean_wrap >= 4: + reasons.append("word-boundary newlines fire, but remain below the Stage D density bar") + else: + reasons.append("word-boundary newline density remains too low to replace Cycle 6 spacing") + if mean_candidates >= 8: + reasons.append("mean durable candidate count escaped the Stage B/C four-site regime") + else: + reasons.append("mean durable candidate count remains in the Stage B/C four-site regime") + if mean_wrap >= 0.6 * mean_candidates and mean_candidates > 0: + reasons.append("most durable sites are word-boundary layout newlines rather than lexical substitutions") + if residual_mean < 2 and mean_format + mean_wrap >= 2: + reasons.append("non-layout lexical and syntactic density remains low") + collapsed_fraction = None + if collapsed_intact_mean is not None and source_root_mean is not None: + if source_root_mean <= 0: + raise ValueError("source_root_mean must be positive") + collapsed_fraction = collapsed_intact_mean / source_root_mean + if collapsed_fraction <= 0.5: + reasons.append("collapsed intact root windows dropped by at least half versus the source root") + elif collapsed_fraction <= 0.75: + reasons.append("collapsed intact root windows dropped, but more than half of the source windows remain") + else: + reasons.append("collapsed intact root windows remain high relative to the source root") + if mean_wrap < 8 or mean_candidates < 8: + decision = INSUFFICIENT_EVIDENCE + elif collapsed_fraction is not None and collapsed_fraction > 0.75: + decision = INSUFFICIENT_EVIDENCE + reasons.append("density rose but collapse-surviving geometry still leaves most windows intact") + else: + decision = PROMISING_DEVELOPMENT + reasons.append("this is development evidence, not Cycle 7 formal confirmation") + payload = { + "algorithm_version": CYCLE7_STAGE_D_DECISION_VERSION, + "decision": decision, + "reasons": tuple(reasons), + "mean_candidate_count": mean_candidates, + "mean_format_candidate_count": mean_format, + "mean_word_boundary_candidate_count": mean_wrap, + "mean_nonlayout_candidate_count": residual_mean, + "collapsed_intact_fraction_of_root": collapsed_fraction, + "notes": ( + "Stage D is development-only. Seeds 830000/840000/850000 were not inspected. " + "Seed 880000 remains unused validation until a catalog freeze. " + "Do not retune on 810000, 860000, 820000, or 870000." + ), + } + return payload + + +def density_artifact_stage_d( + samples: Sequence[Mapping[str, object]], + *, + seed_base: int, + catalog_version: str, +) -> dict[str, object]: + rows = durable_density_table(samples) + summary = summarize_density_rows(rows) + payload = { + "algorithm_version": "cycle7-stage-d-density-v1", + "seed_base": seed_base, + "durable_catalog_version": catalog_version, + "detector_access_used_for_selection": False, + "rows": rows, + "summary": summary, + "decision": classify_stage_d_density(density_summary=summary), + } + return {**payload, "artifact_hash": sha256_json({k: v for k, v in payload.items() if k != "artifact_hash"})} diff --git a/fuckmark/cycle7_stage_d_hf.py b/fuckmark/cycle7_stage_d_hf.py new file mode 100644 index 00000000..eee8de0f --- /dev/null +++ b/fuckmark/cycle7_stage_d_hf.py @@ -0,0 +1,150 @@ +from __future__ import annotations + +import argparse +import json +from pathlib import Path + +from .config import canonical_json_text +from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from .cycle7.ledger import ( + CYCLE7_STAGE_C_VALIDATION_SEED_BASE, + CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_D1_TOPIC, + assert_rule_construction_seed, +) +from .cycle7.stage_d import classify_stage_d_density, density_artifact_stage_d +from .cycle7_stage_a_hf import _adapter_and_tokenizer, _build_detector_artifact, _evaluate_samples +from .cycle7_stage_b_hf import _generate_stage_b_samples, _geometry_artifact +from .durable_io import write_canonical_json_fsynced +from .hashing import sha256_json + + +CYCLE7_STAGE_D_DETECTOR_VERSION = "cycle7-stage-d-detector-compare-v1" + + +def run_stage_d1( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + seed_base = CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE + topic = CYCLE7_STAGE_D1_TOPIC + assert_rule_construction_seed(seed_base) + backend, tokenizer, adapter, identity_hash, eos = _adapter_and_tokenizer(device) + if samples_from is not None: + previous = json.loads(samples_from.read_text(encoding="utf-8")) + samples = tuple(previous["samples"]) + if int(previous["seed_base"]) != seed_base: + raise ValueError("Stage D sample file seed_base does not match the requested ledger seed") + else: + samples = _generate_stage_b_samples(backend, seed_base, topic, "cycle7-stage-d1") + density_samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples + ) + density = density_artifact_stage_d( + density_samples, + seed_base=seed_base, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + geometry = _geometry_artifact(samples, tokenizer, identity_hash, seed_base) + density_decision = classify_stage_d_density( + density_summary=density["summary"], + collapsed_intact_mean=float(geometry["durable_intact_means"]["mean_collapsed_intact_window_count"]), + source_root_mean=float(geometry["durable_intact_means"]["mean_root_window_count"]), + ) + detector = None + if not skip_detector: + geometry_rows, scored_rows, summaries = _evaluate_samples( + samples, tokenizer, identity_hash, adapter, eos + ) + detector = _build_detector_artifact( + samples, + geometry_rows, + scored_rows, + summaries, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + detector = { + **{k: v for k, v in detector.items() if k != "artifact_hash"}, + "algorithm_version": CYCLE7_STAGE_D_DETECTOR_VERSION, + "seed_base": seed_base, + "stage": "D1", + "topic": topic, + } + detector = { + **detector, + "artifact_hash": sha256_json({k: v for k, v in detector.items() if k != "artifact_hash"}), + } + return { + "samples": samples, + "density": density, + "geometry": geometry, + "decision": density_decision, + "detector": detector, + "seed_base": seed_base, + "topic": topic, + "stage": "D1", + } + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-d") + parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") + parser.add_argument( + "--output-dir", + type=Path, + default=Path("evidence/cycle7-stage-d-2026-08-25"), + ) + parser.add_argument("--skip-detector", action="store_true", default=True) + parser.add_argument("--with-detector", action="store_true") + parser.add_argument("--samples-from", type=Path, default=None) + parser.add_argument("--validation", action="store_true") + args = parser.parse_args(argv) + if args.validation: + raise RuntimeError( + f"Stage D validation seed {CYCLE7_STAGE_C_VALIDATION_SEED_BASE} is reserved until a catalog freeze" + ) + skip_detector = not args.with_detector + bundle = run_stage_d1( + device=args.device, + skip_detector=skip_detector, + samples_from=args.samples_from, + ) + args.output_dir.mkdir(parents=True, exist_ok=True) + sample_payload = { + "algorithm_version": "cycle7-stage-d-samples-v1", + "seed_base": bundle["seed_base"], + "topic": bundle["topic"], + "stage": bundle["stage"], + "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, + "samples": tuple( + { + "sample_id": sample["sample_id"], + "domain": sample["domain"], + "label": sample["label"], + "prompt": sample["prompt"], + "seed": sample["seed"], + "text": sample["text"], + "text_sha256": sample["text_sha256"], + } + for sample in bundle["samples"] + ), + "detector_access_used_for_selection": False, + } + sample_payload = { + **sample_payload, + "artifact_hash": sha256_json({k: v for k, v in sample_payload.items() if k != "artifact_hash"}), + } + write_canonical_json_fsynced(args.output_dir / "samples.json", sample_payload) + write_canonical_json_fsynced(args.output_dir / "density.json", bundle["density"]) + write_canonical_json_fsynced(args.output_dir / "geometry.json", bundle["geometry"]) + write_canonical_json_fsynced(args.output_dir / "decision.json", bundle["decision"]) + if bundle["detector"] is not None: + write_canonical_json_fsynced(args.output_dir / "detector-compare.json", bundle["detector"]) + print(canonical_json_text(bundle["decision"])) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/fuckmark/transforms/cycle7_quote_policy.py b/fuckmark/transforms/cycle7_quote_policy.py index 7534df24..96a23343 100644 --- a/fuckmark/transforms/cycle7_quote_policy.py +++ b/fuckmark/transforms/cycle7_quote_policy.py @@ -3,7 +3,7 @@ from collections.abc import Sequence from typing import TYPE_CHECKING, Any -from .format_rules import FormatBoundaryRule +from .format_rules import FormatBoundaryRule, WordBoundaryNewlineRule from .lexical_rules import LexicalTemplateRule from .quote_policy import ( QUOTE_SAFE_SURFACE_POLICY_ID, @@ -42,6 +42,7 @@ "cycle7-expand-", "cycle7-ortho-", "cycle7-format-", + "cycle7-word-", "cycle7-syntax-", "lexical-compound-", "lexical-prenominal-", @@ -55,7 +56,7 @@ def is_cycle7_quote_durable_rule(rule: object) -> bool: if isinstance(rule, (GeneralWordLeadingSpacingRule, GeneralWordSpacingRule, SurfaceSpacingRule)): return False - if isinstance(rule, FormatBoundaryRule): + if isinstance(rule, (FormatBoundaryRule, WordBoundaryNewlineRule)): return True if isinstance(rule, LiteralTransformRule): if rule.family is TransformFamily.CONTRACTION: @@ -63,7 +64,7 @@ def is_cycle7_quote_durable_rule(rule: object) -> bool: ("contract-", "expand-", "cycle7-contract-", "cycle7-expand-") ) return rule.family is TransformFamily.ORTHOGRAPHY and getattr(rule, "rule_id", "").startswith( - ("cycle7-ortho-", "cycle7-format-") + ("cycle7-ortho-", "cycle7-format-", "cycle7-word-") ) return isinstance(rule, (LexicalTemplateRule, SyntaxTemplateRule)) diff --git a/fuckmark/transforms/format_rules.py b/fuckmark/transforms/format_rules.py index f7d0dece..d876bf9b 100644 --- a/fuckmark/transforms/format_rules.py +++ b/fuckmark/transforms/format_rules.py @@ -73,6 +73,10 @@ class FormatConstruction(str, Enum): SENTENCE_BOUNDARY_NEWLINE = "sentence_boundary_newline" CLAUSE_PUNCTUATION_NEWLINE = "clause_punctuation_newline" + WORD_BOUNDARY_NEWLINE = "word_boundary_newline" + + +WORD_BOUNDARY_NEWLINE_RULE_ALGORITHM_VERSION = "word-boundary-newline-rule-v1" def _word_before_punct(text: str, punct_index: int) -> str: @@ -133,6 +137,32 @@ def clause_punctuation_span_admissible(text: str, start: int, end: int) -> bool: return True +def _is_ascii_alpha(character: str) -> bool: + return "A" <= character <= "Z" or "a" <= character <= "z" + + +def _ascii_alpha_run(text: str, index: int, *, reverse: bool) -> str: + if reverse: + cursor = index + while cursor > 0 and _is_ascii_alpha(text[cursor - 1]): + cursor -= 1 + return text[cursor:index] + cursor = index + while cursor < len(text) and _is_ascii_alpha(text[cursor]): + cursor += 1 + return text[index:cursor] + + +def word_boundary_span_admissible(text: str, start: int, end: int) -> bool: + if start < 2 or end != start + 1 or end + 2 > len(text): + return False + if text[start] not in " \n": + return False + left = _ascii_alpha_run(text, start, reverse=True) + right = _ascii_alpha_run(text, end, reverse=False) + return len(left) >= 2 and len(right) >= 2 + + @dataclass(frozen=True, slots=True) class FormatBoundaryRule(LiteralTransformRule): def __post_init__(self) -> None: @@ -237,3 +267,90 @@ def precondition(self, text: str, start: int, end: int) -> bool: if self.source[:1] in ".?!": return sentence_boundary_span_admissible(text, start, end) return clause_punctuation_span_admissible(text, start, end) + + +@dataclass(frozen=True, slots=True) +class WordBoundaryNewlineRule(LiteralTransformRule): + def __post_init__(self) -> None: + require_clean_string("rule_id", self.rule_id) + require_clean_string("version", self.version) + if self.family is not TransformFamily.ORTHOGRAPHY: + raise ValueError("word-boundary newline rules must use the orthography family") + if self.tier is not TransformTier.SURFACE: + raise ValueError("word-boundary newline rules must use tier 1 surface") + if self.source not in (" ", "\n") or self.replacement not in (" ", "\n"): + raise ValueError("word-boundary newline rules must swap a single space with a single newline") + if self.source == self.replacement: + raise ValueError("source and replacement must differ") + if "\r" in self.source or "\r" in self.replacement: + raise ValueError("word-boundary newline rules must not contain carriage returns") + require_bool("whole_word", self.whole_word) + require_bool("preserve_simple_case", self.preserve_simple_case) + require_bool("block_all_caps", self.block_all_caps) + if self.whole_word or self.preserve_simple_case or self.block_all_caps: + raise ValueError("word-boundary newline rules use an exact space/newline contract") + require_sha256("rule_hash", self.rule_hash) + if self.rule_hash != sha256_json(self._payload()): + raise ValueError("rule_hash does not match word-boundary newline rule") + + def _payload(self) -> dict[str, object]: + return { + "algorithm_version": WORD_BOUNDARY_NEWLINE_RULE_ALGORITHM_VERSION, + "rule_id": self.rule_id, + "version": self.version, + "family": self.family.value, + "tier": self.tier.value, + "source": self.source, + "replacement": self.replacement, + "construction": FormatConstruction.WORD_BOUNDARY_NEWLINE.value, + "whole_word": self.whole_word, + "preserve_simple_case": self.preserve_simple_case, + "block_all_caps": self.block_all_caps, + } + + @classmethod + def create(cls, rule_id: str, version: str, source: str, replacement: str) -> WordBoundaryNewlineRule: + payload = { + "algorithm_version": WORD_BOUNDARY_NEWLINE_RULE_ALGORITHM_VERSION, + "rule_id": rule_id, + "version": version, + "family": TransformFamily.ORTHOGRAPHY.value, + "tier": TransformTier.SURFACE.value, + "source": source, + "replacement": replacement, + "construction": FormatConstruction.WORD_BOUNDARY_NEWLINE.value, + "whole_word": False, + "preserve_simple_case": False, + "block_all_caps": False, + } + return cls( + rule_id=rule_id, + version=version, + family=TransformFamily.ORTHOGRAPHY, + tier=TransformTier.SURFACE, + source=source, + replacement=replacement, + whole_word=False, + preserve_simple_case=False, + block_all_caps=False, + rule_hash=sha256_json(payload), + ) + + def pattern(self) -> re.Pattern[str]: + if self.source == "\n": + return re.compile(r"(?<=[A-Za-z]{2})\n(?=[A-Za-z]{2})") + return re.compile(r"(?<=[A-Za-z]{2}) (?=[A-Za-z]{2})") + + def replacement_for(self, source_text: str) -> str: + if source_text not in (" ", "\n"): + raise ValueError("word-boundary newline replacement expects a single space or newline") + return self.replacement + + def precondition(self, text: str, start: int, end: int) -> bool: + if not isinstance(text, str): + raise TypeError("text must be a string") + if start < 0 or end <= start or end > len(text): + raise ValueError("word-boundary precondition span is outside text") + if text[start:end] != self.source: + raise ValueError("word-boundary precondition span does not match rule source") + return word_boundary_span_admissible(text, start, end) diff --git a/fuckmark/transforms/registry.py b/fuckmark/transforms/registry.py index 3c6f43d2..9de9f5db 100644 --- a/fuckmark/transforms/registry.py +++ b/fuckmark/transforms/registry.py @@ -6,7 +6,7 @@ from .._validation import require_int, require_sha256 from ..hashing import sha256_json, sha256_text from .candidate_artifacts import CandidateEnumeration, CandidateRejection, TransformCandidate, _build_conflicts -from .format_rules import FormatBoundaryRule +from .format_rules import FormatBoundaryRule, WordBoundaryNewlineRule from .hard_invariants import validate_hard_invariants from .lexical_audit import LexicalRuleAudit, LexicalRulePromotionError from .lexical_rules import LexicalTemplateRule, development_lexical_rules @@ -166,7 +166,9 @@ def enumerate(self, text: str, user_ranges: Sequence[UserProtectedRange] = ()) - if rule.block_all_caps and letters and letters.isupper(): rejections.append(_make_rejection(input_hash, rule, start, end, source_text, CandidateRejectionReason.ALL_CAPS_BLOCKED)) continue - if isinstance(rule, (LexicalTemplateRule, SyntaxTemplateRule, FormatBoundaryRule)) and not rule.precondition(text, start, end): + if isinstance( + rule, (LexicalTemplateRule, SyntaxTemplateRule, FormatBoundaryRule, WordBoundaryNewlineRule) + ) and not rule.precondition(text, start, end): rejections.append(_make_rejection(input_hash, rule, start, end, source_text, CandidateRejectionReason.PRECONDITION_FAILED)) continue replacement_getter = getattr(rule, "replacement_for", None) diff --git a/tests/test_cycle7_ledger.py b/tests/test_cycle7_ledger.py index 0d7ed67b..0a23c305 100644 --- a/tests/test_cycle7_ledger.py +++ b/tests/test_cycle7_ledger.py @@ -23,11 +23,11 @@ def test_spent_and_reserved_seeds_are_disjoint_and_documented() -> None: assert tuple(payload["spent_confirmation_seed_bases"]) == SPENT_CONFIRMATION_SEED_BASES assert SPENT_CONFIRMATION_SEED_BASES == (760000, 770000, 780000) assert SPENT_DEVELOPMENT_SEED_BASES == (720000, 730000) - assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v3" + assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v4" assert CYCLE7_EXPLORATORY_SEED_BASE == 810000 - assert CYCLE7_EXPLORATORY_SEED_BASES == (810000, 860000, 870000) - assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (870000,) + assert CYCLE7_EXPLORATORY_SEED_BASES == (810000, 860000, 870000, 890000) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (890000,) assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_VALIDATION_SEED_BASE == 820000 assert CYCLE7_CONFIRMATION_RESERVED_SEED_BASES == (830000, 840000, 850000) @@ -42,6 +42,7 @@ def test_spent_and_reserved_seeds_are_disjoint_and_documented() -> None: assert 860000 not in blocked assert 870000 not in blocked assert 880000 not in blocked + assert 890000 not in blocked assert 830000 in blocked assert cycle7_seed_ledger_hash() == cycle7_seed_ledger_hash() diff --git a/tests/test_cycle7_stage_b.py b/tests/test_cycle7_stage_b.py index 02352c72..d2188edd 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -2,6 +2,7 @@ from fuckmark.cycle7.durable_rules import ( CYCLE7_DURABLE_RULE_CATALOG_VERSION, CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, + CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, ) from fuckmark.cycle7.fixtures import stage_b_fixture_samples from fuckmark.cycle7.ledger import ( @@ -13,6 +14,7 @@ CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_B1_TOPIC, CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, CYCLE7_USED_EXPLORATORY_SEED_BASES, CYCLE7_VALIDATION_SEED_BASE, CYCLE7_VALIDATION_TOPIC, @@ -33,27 +35,31 @@ def test_stage_b_catalog_and_ledger_identities() -> None: assert CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v3" - assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v4" - assert CYCLE7_DURABLE_REGISTRY_ID == "cycle7-durable-catalog-v4" - assert CYCLE7_COMBINED_REGISTRY_ID == "cycle7-durable-plus-cycle6-spacing-v3" - assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v3" + assert CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v4" + assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v5" + assert CYCLE7_DURABLE_REGISTRY_ID == "cycle7-durable-catalog-v5" + assert CYCLE7_COMBINED_REGISTRY_ID == "cycle7-durable-plus-cycle6-spacing-v4" + assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v4" assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_STAGE_B1_TOPIC == "independent replication" assert CYCLE7_VALIDATION_TOPIC == "held-out evaluation" - assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (870000,) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (890000,) payload = cycle7_seed_ledger_payload() assert payload["stage_b1_exploratory_seed_base"] == 860000 assert payload["stage_b1_topic"] == "independent replication" assert payload["stage_c1_exploratory_seed_base"] == 870000 assert payload["stage_c1_topic"] == "measurement protocol" + assert payload["stage_d1_exploratory_seed_base"] == 890000 + assert payload["stage_d1_topic"] == "document structure" assert payload["validation_topic"] == "held-out evaluation" assert payload["used_validation_development_seed_bases"] == [820000] assert payload["active_validation_development_seed_bases"] == [880000] -def test_rule_construction_admits_870000_and_blocks_spent_or_reserved_seeds() -> None: - assert_rule_construction_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE) +def test_rule_construction_admits_890000_and_blocks_spent_or_reserved_seeds() -> None: + assert_rule_construction_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE) + assert_development_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) @@ -61,6 +67,8 @@ def test_rule_construction_admits_870000_and_blocks_spent_or_reserved_seeds() -> assert_rule_construction_seed(CYCLE7_EXPLORATORY_SEED_BASE) with pytest.raises(ValueError, match="rule-construction"): assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) + with pytest.raises(ValueError, match="rule-construction"): + assert_rule_construction_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE) with pytest.raises(ValueError, match="rule-construction"): assert_development_seed(CYCLE7_EXPLORATORY_SEED_BASE, role=CYCLE7_RULE_CONSTRUCTION_ROLE) with pytest.raises(ValueError, match="confirmation-reserved"): diff --git a/tests/test_cycle7_stage_c_families.py b/tests/test_cycle7_stage_c_families.py index 376c541d..28e8db29 100644 --- a/tests/test_cycle7_stage_c_families.py +++ b/tests/test_cycle7_stage_c_families.py @@ -2,7 +2,7 @@ from fuckmark.cycle7.density import durable_density_row, durable_density_table from fuckmark.cycle7.durable_rules import ( - CYCLE7_DURABLE_RULE_CATALOG_VERSION, + CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, cycle7_clause_punctuation_rules, cycle7_quantifier_of_rules, ) @@ -12,7 +12,6 @@ CYCLE7_STAGE_C1_TOPIC, CYCLE7_STAGE_C_VALIDATION_SEED_BASE, CYCLE7_STAGE_C_VALIDATION_TOPIC, - assert_rule_construction_seed, ) from fuckmark.cycle7.registry import cycle7_durable_transform_registry from fuckmark.cycle7.stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows @@ -36,12 +35,11 @@ def _apply_rule(text: str, rule_id: str) -> str: def test_stage_c_ledger_identities_are_frozen_before_inspection() -> None: - assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v4" + assert CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v4" assert CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE == 870000 assert CYCLE7_STAGE_C1_TOPIC == "measurement protocol" assert CYCLE7_STAGE_C_VALIDATION_SEED_BASE == 880000 assert CYCLE7_STAGE_C_VALIDATION_TOPIC == "independent check" - assert_rule_construction_seed(870000) def test_clause_punctuation_swaps_space_and_newline() -> None: @@ -143,7 +141,7 @@ def test_stage_c_fixtures_have_clause_and_quantifier_density() -> None: artifact = density_artifact_stage_c( samples, seed_base=CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, ) assert artifact["detector_access_used_for_selection"] is False assert artifact["seed_base"] == 870000 diff --git a/tests/test_cycle7_stage_d_families.py b/tests/test_cycle7_stage_d_families.py new file mode 100644 index 00000000..7d851ba5 --- /dev/null +++ b/tests/test_cycle7_stage_d_families.py @@ -0,0 +1,161 @@ +import pytest + +from fuckmark.cycle7.density import durable_density_row, durable_density_table +from fuckmark.cycle7.durable_rules import ( + CYCLE7_DURABLE_RULE_CATALOG_VERSION, + cycle7_word_boundary_rules, +) +from fuckmark.cycle7.fixtures import WORD_BOUNDARY_RICH, stage_d_fixture_samples +from fuckmark.cycle7.ledger import ( + CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_D1_TOPIC, + CYCLE7_STAGE_C_VALIDATION_SEED_BASE, + CYCLE7_STAGE_C_VALIDATION_TOPIC, + assert_rule_construction_seed, +) +from fuckmark.cycle7.registry import cycle7_durable_transform_registry +from fuckmark.cycle7.stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows +from fuckmark.cycle7.stage_d import classify_stage_d_density, density_artifact_stage_d +from fuckmark.cycle7.whitespace_collapse import collapse_horizontal_ascii_whitespace, sanitize_cycle7_variant +from fuckmark.transforms.format_rules import FormatConstruction +from fuckmark.transforms.hard_invariants import validate_hard_invariants +from fuckmark.transforms.schema import InvariantStatus + + +def _apply_rule(text: str, rule_id: str) -> str: + registry = cycle7_durable_transform_registry() + enumeration = registry.enumerate(text) + selected = tuple( + candidate for candidate in enumeration.candidates if candidate.rule_id == rule_id + ) + assert selected, (rule_id, tuple(candidate.rule_id for candidate in enumeration.candidates), text) + result = registry.apply(enumeration, (selected[0].candidate_id,)) + return result.output_text + + +def test_stage_d_ledger_identities_are_frozen_before_inspection() -> None: + assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v5" + assert CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE == 890000 + assert CYCLE7_STAGE_D1_TOPIC == "document structure" + assert CYCLE7_STAGE_C_VALIDATION_SEED_BASE == 880000 + assert CYCLE7_STAGE_C_VALIDATION_TOPIC == "independent check" + assert_rule_construction_seed(890000) + + +def test_word_boundary_swaps_space_and_newline() -> None: + rules = cycle7_word_boundary_rules() + assert len(rules) == 2 + assert all( + rule._payload()["construction"] == FormatConstruction.WORD_BOUNDARY_NEWLINE.value for rule in rules + ) + text = "The protocol remains fixed." + output = _apply_rule(text, "cycle7-word-boundary-newline") + assert output == "The\nprotocol remains fixed." + assert collapse_horizontal_ascii_whitespace(output) == output + for variant in ( + "raw", + "nfkc", + "cf_strip", + "nfkc_cf_strip", + "ws_collapse", + "ws_collapse_nfkc_cf_strip", + ): + assert sanitize_cycle7_variant(variant, output) == output + restored = _apply_rule(output, "cycle7-word-boundary-space") + assert restored == text + assert validate_hard_invariants(text, output).status is InvariantStatus.PASS + + +def test_word_boundary_false_positives_are_blocked() -> None: + registry = cycle7_durable_transform_registry() + blocked = ( + "A b c remains.", + "I am.", + "See v2 later.", + "Hello. World.", + "Failed, X passed.", + "Value 12 stays.", + "List a, b, c remains.", + ) + for text in blocked: + enumeration = registry.enumerate(text) + assert not any( + candidate.rule_id.startswith("cycle7-word-boundary-") for candidate in enumeration.candidates + ), text + + +def test_word_boundary_does_not_consume_punctuation_newline_sites() -> None: + registry = cycle7_durable_transform_registry() + text = "Careful testing matters. Independent replication remains required." + enumeration = registry.enumerate(text) + sentence = tuple( + candidate for candidate in enumeration.candidates if candidate.rule_id == "cycle7-format-sentence-period-newline" + ) + wraps = tuple( + candidate for candidate in enumeration.candidates if candidate.rule_id == "cycle7-word-boundary-newline" + ) + assert sentence + assert sentence[0].source_text == ". " + assert all(candidate.source_text == " " for candidate in wraps) + assert not any(candidate.start == sentence[0].start + 1 for candidate in wraps) + + +def test_stage_d_fixtures_have_word_boundary_density() -> None: + wrap = durable_density_row("word-boundary-rich", WORD_BOUNDARY_RICH) + assert int(wrap["word_boundary_candidate_count"]) >= 8 + samples = tuple( + {"sample_id": sample_id, "text": text} for sample_id, text in stage_d_fixture_samples() + ) + rows = durable_density_table(samples) + summary = summarize_density_rows(rows) + assert summary["mean_word_boundary_candidate_count"] >= 8 + decision = classify_stage_d_density(density_summary=summary) + assert decision["decision"] in {PROMISING_DEVELOPMENT, INSUFFICIENT_EVIDENCE} + artifact = density_artifact_stage_d( + samples, + seed_base=CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + assert artifact["detector_access_used_for_selection"] is False + assert artifact["seed_base"] == 890000 + + +def test_stage_d_classifier_requires_word_boundary_density_and_geometry() -> None: + four_site = { + "mean_candidate_count": 4.75, + "mean_format_candidate_count": 2.875, + "mean_word_boundary_candidate_count": 0.0, + } + assert classify_stage_d_density(density_summary=four_site)["decision"] == INSUFFICIENT_EVIDENCE + dense_weak_geometry = { + "mean_candidate_count": 22.0, + "mean_format_candidate_count": 2.0, + "mean_word_boundary_candidate_count": 18.0, + } + weak = classify_stage_d_density( + density_summary=dense_weak_geometry, + collapsed_intact_mean=45.0, + source_root_mean=50.0, + ) + assert weak["decision"] == INSUFFICIENT_EVIDENCE + promising = classify_stage_d_density( + density_summary=dense_weak_geometry, + collapsed_intact_mean=20.0, + source_root_mean=50.0, + ) + assert promising["decision"] == PROMISING_DEVELOPMENT + + +def test_gpt2_tokenization_changes_for_word_boundary_newline() -> None: + pytest.importorskip("transformers") + from transformers import AutoTokenizer + + tokenizer = AutoTokenizer.from_pretrained( + "openai-community/gpt2", + revision="607a30d783dfa663caf39e06633721c8d4cfcd7e", + ) + left = "The protocol remains fixed" + right = "The\nprotocol remains fixed" + assert tokenizer.encode(left, add_special_tokens=False) != tokenizer.encode( + right, add_special_tokens=False + ) From 388e997ca83906624abfc71d1e82b2b899ccac1c Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 23:11:12 +0000 Subject: [PATCH 2/6] Record Cycle 7 Stage D1 PROMISING_DEVELOPMENT on seed 890000. Family 12 word-boundary newlines reach mean density 38.0 and collapsed intact/root 0.164. Durable detections stay 0/4 after whitespace collapse on this n=4 snapshot. Catalog v5 is not retuned. Seed 880000 remains the disjoint validation split. Co-authored-by: Byte271 --- docs/cycle7/README.md | 2 +- docs/cycle7/stage-d-decision.md | 94 +++++++++++++ .../cycle7-stage-d-2026-08-25/decision.json | 1 + .../cycle7-stage-d-2026-08-25/density.json | 1 + .../detector-compare.json | 1 + .../cycle7-stage-d-2026-08-25/geometry.json | 1 + .../cycle7-stage-d-2026-08-25/samples.json | 1 + fuckmark/cycle7_stage_d_hf.py | 132 ++++++++++++++---- tests/test_cycle7_stage_d_families.py | 3 + 9 files changed, 208 insertions(+), 28 deletions(-) create mode 100644 docs/cycle7/stage-d-decision.md create mode 100644 evidence/cycle7-stage-d-2026-08-25/decision.json create mode 100644 evidence/cycle7-stage-d-2026-08-25/density.json create mode 100644 evidence/cycle7-stage-d-2026-08-25/detector-compare.json create mode 100644 evidence/cycle7-stage-d-2026-08-25/geometry.json create mode 100644 evidence/cycle7-stage-d-2026-08-25/samples.json diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 36ecfe5b..204edb47 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -103,7 +103,7 @@ Stage C1 on seed `870000` (topic frozen as `measurement protocol`) added clause- ## Stage D -Stage D1 on seed `890000` (topic frozen as `document structure`) adds word-boundary newlines as a denser collapse-resistant layout channel. This is development-only. Seed `880000` is not inspected. The D1 decision document is written only after density, geometry, and detector artifacts exist. +Stage D1 on seed `890000` (topic frozen as `document structure`) added word-boundary newlines. Mean durable candidates: **38.0**. Collapse-surviving intact/root **0.164**. Detector: durable **0/4** after collapse; Cycle 6 spacing **3/4** after collapse. Overall: **`PROMISING_DEVELOPMENT`**. Seed `880000` was not inspected in D1. Details: `docs/cycle7/stage-d-decision.md`. Not claimed: diff --git a/docs/cycle7/stage-d-decision.md b/docs/cycle7/stage-d-decision.md new file mode 100644 index 00000000..c1edeacd --- /dev/null +++ b/docs/cycle7/stage-d-decision.md @@ -0,0 +1,94 @@ +# Cycle 7 Stage D decision + +**Decision: `PROMISING_DEVELOPMENT`** + +This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Catalog v5 is frozen against further rule expansion on seed `890000`. Seed `880000` is the next unused validation split. + +Catalog: `cycle7-durable-rule-catalog-v5`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. + +v5 adds Family 12 (word-boundary newline). Families 1–11 are unchanged from catalog v4. No new lexical whitelist was added. + +## Stage D1 corpus + +Exploratory seed `890000` and topic `document structure` were frozen in `cycle7-seed-ledger-v4` before generation. Pair stride 32, one pair per TinyDev domain, 8 texts (4 watermarked + 4 matched unwatermarked). Seeds `810000`, `860000`, `820000`, and `870000` were not used as rule-construction data for v5. + +Artifact hashes: + +- samples `70affa24d42354a0812e66fe731a15e85ab32478884bb8df6bd6adb3de2a2219` +- density `d6d6669cf31940289c97c6d56778f06e1e9a00e92b2e5e90349a3b3958bee991` +- geometry `5a0fe8cfffa8db11ff6f25da93cad26dc8d532a5a36a1454a1c4fb7876ef981a` +- detector-compare `4781844f967595fb00596b462390bc8fc134b37bb5a2d28999e43fa37f19366b` + +## Density (VERIFIED on seed 890000) + +Mean durable candidates: **38.0** per sample. Mean word-boundary newlines: **33.375**. Stage D required a mean of at least 8 word-boundary sites and at least 8 total durable sites. + +Family means: + +| Family | Mean candidates | +| --- | --- | +| word-boundary newline | **33.375** | +| all punctuation format (sentence + clause) | 2.125 | +| clause punctuation newline | 1.50 | +| coordinating comma | 0.375 | +| quantifier `of` | 0.00 | +| complementizer / discourse / prenominal / parenthetical | 0.00 | + +Min 8 / max 52 / zero-candidate rows 0/8. This escaped the Stage B/C four-site regime. The new density is almost entirely the layout channel, not lexical substitution. + +## Geometry (VERIFIED on seed 890000) + +Durable-only, GPT-2 tokenizer, budget 14: + +- mean selected: 12.625 +- mean root windows: 56.375 +- mean intact after durable edits: 9.25 +- mean intact after `whitespace-collapse-v1`: 9.25 +- collapsed intact / root: **0.164** + +Collapse does not restore durable edits. This is the strong geometry band (≤0.5). Cycle 6 spacing on the same texts: + +- raw intact / root: 0.248 +- collapsed intact / root: **0.982** + +Combined after collapse: intact / root **0.528**, worse than durable-only. Cover-greedy v4 was not changed after seeing 890000. Combined-after-collapse worse than durable-only now replicates on 810000, 860000, 820000, 870000, and 890000. + +## Detector (VERIFIED on seed 890000, n=4 watermarked) + +Frozen threshold `0.5570987654320988`. Detector scores were not used to select edits. + +| Arm | Pristine WM | Raw WM | Raw UW | ws_collapse WM | ws_collapse UW | +| --- | --- | --- | --- | --- | --- | +| Cycle 6 spacing B14 | 3/4 | **0/4** | 0/4 | **3/4** | 0/4 | +| Cycle 7 durable v5 | 3/4 | **0/4** | 0/4 | **0/4** | 0/4 | +| Combined | 3/4 | **1/4** | 0/4 | **3/4** | 0/4 | + +NFKC, Cf-strip, NFKC+Cf-strip matched raw. `ws_collapse_nfkc_cf_strip` matched `ws_collapse`. + +Unwatermarked transformed controls: **0 detections** on every arm and sanitizer. + +One watermarked row (`technical_explanation`, seed 890032, 115 characters) was already below threshold on the pristine text (score 0.5461). Conditional on the 3 pristine-detected rows: Cycle 6 spacing returned to 3/3 after collapse; durable v5 stayed 0/3 after collapse. + +The durable 0/4 collapse-surviving result is SOURCE-BOUND to seed `890000` and n=4. Stage B already showed that a tiny development detector snapshot can fail to replicate. This D1 snapshot is not Cycle 7 formal confirmation. + +## Claim boundary + +Safe claim: under the frozen SynthID-Text/GPT-2 protocol, catalog v5 on seed `890000` raised natural durable-site density out of the Stage B/C four-site regime (38.0 vs 4.0–4.75), almost all of that density is word-boundary newlines, collapse-surviving intact root windows dropped to ~16.4%, Cycle 6 spacing still returned to 3/4 detections after whitespace collapse, and durable v5 stayed at 0/4 after the same collapse. + +Do not claim: universal watermark removal; proprietary-detector transfer; formal confirmation; human-fidelity validation; that word-boundary newlines would survive a wrap/reflow sanitizer; that combined cover-greedy v4 plus spacing is a Cycle 6 replacement; that 0/4 on n=4 is 0/192. + +## Overall Stage D1 conclusion + +**`PROMISING_DEVELOPMENT`** as a Cycle 6 whitespace-collapse replacement candidate. + +The Stage C hypothesis that local semantically conservative English surface equivalence plus sparse punctuation-newlines cannot replace Cycle 6 spacing is still true for families 1–11. Family 12 is a different primitive: the same layout channel, densified to ordinary word boundaries. On this seed it matches Cycle 6 raw geometry (~0.16 intact/root) and keeps that geometry after `whitespace-collapse-v1`. + +HYPOTHESIS unchanged: a wrap/reflow sanitizer would erase Family 12. That sanitizer is not in the frozen Cycle 7 suite. + +Do not retune v5 on `890000`. Do not inspect `830000` / `840000` / `850000`. Do not open Cycle 7 formal confirmation. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. It was not applied after seeing 890000. + +## Next + +1. Keep catalog v5 frozen. Use seed `880000` / topic `independent check` as disjoint validation. Do not recycle `820000`. +2. If validation fails to replicate density, geometry, or detector reduction, overall Stage D is `INSUFFICIENT_EVIDENCE` and v5 is not a confirmation candidate. +3. If validation replicates, still do not open confirmation on n=4+4. Confirmation, if ever justified, uses reserved seeds `830000` / `840000` / `850000` under a frozen protocol. diff --git a/evidence/cycle7-stage-d-2026-08-25/decision.json b/evidence/cycle7-stage-d-2026-08-25/decision.json new file mode 100644 index 00000000..819a7f5b --- /dev/null +++ b/evidence/cycle7-stage-d-2026-08-25/decision.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-decision-v1","collapsed_intact_fraction_of_root":0.164079822616408,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":38.0,"mean_format_candidate_count":2.125,"mean_nonlayout_candidate_count":2.5,"mean_word_boundary_candidate_count":33.375,"notes":"Stage D is development-only. Seeds 830000/840000/850000 were not inspected. Seed 880000 remains unused validation until a catalog freeze. Do not retune on 810000, 860000, 820000, or 870000.","reasons":["mean word-boundary newline candidate count is at least 8 per sample","mean durable candidate count escaped the Stage B/C four-site regime","most durable sites are word-boundary layout newlines rather than lexical substitutions","collapsed intact root windows dropped by at least half versus the source root","this is development evidence, not Cycle 7 formal confirmation"]} diff --git a/evidence/cycle7-stage-d-2026-08-25/density.json b/evidence/cycle7-stage-d-2026-08-25/density.json new file mode 100644 index 00000000..90435b53 --- /dev/null +++ b/evidence/cycle7-stage-d-2026-08-25/density.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-density-v1","artifact_hash":"d6d6669cf31940289c97c6d56778f06e1e9a00e92b2e5e90349a3b3958bee991","decision":{"algorithm_version":"cycle7-stage-d-decision-v1","collapsed_intact_fraction_of_root":null,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":38.0,"mean_format_candidate_count":2.125,"mean_nonlayout_candidate_count":2.5,"mean_word_boundary_candidate_count":33.375,"notes":"Stage D is development-only. Seeds 830000/840000/850000 were not inspected. Seed 880000 remains unused validation until a catalog freeze. Do not retune on 810000, 860000, 820000, or 870000.","reasons":["mean word-boundary newline candidate count is at least 8 per sample","mean durable candidate count escaped the Stage B/C four-site regime","most durable sites are word-boundary layout newlines rather than lexical substitutions","this is development evidence, not Cycle 7 formal confirmation"]},"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","rows":[{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":34,"candidates_per_64_tokens":45.3333,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":4,"contraction_candidate_count":4,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":2,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":26,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","word_boundary_candidate_count":28,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":43,"candidates_per_64_tokens":51.9245,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":2,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":2,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":43,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":6,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-general_explanatory-watermarked","word_boundary_candidate_count":39,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":35,"candidates_per_64_tokens":52.093,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":4,"contraction_candidate_count":0,"coord_comma_candidate_count":2,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-and","cycle7-syntax-coord-comma-drop-and"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":5,"format_clause_candidate_count":3,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":2,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":29,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","word_boundary_candidate_count":28,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":8,"candidates_per_64_tokens":42.6667,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":0,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":0,"format_clause_candidate_count":0,"format_clause_rule_ids":[],"format_rule_ids":[],"format_sentence_candidate_count":0,"format_sentence_rule_ids":[],"isolated_candidate_count":8,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":1,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-technical_explanation-watermarked","word_boundary_candidate_count":8,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":2,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":50,"candidates_per_64_tokens":57.1429,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":4,"contraction_candidate_count":2,"coord_comma_candidate_count":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-and"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":2,"format_clause_candidate_count":2,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":0,"format_sentence_rule_ids":[],"isolated_candidate_count":43,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":6,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-expand-we-have","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","word_boundary_candidate_count":43,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":2,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":42,"candidates_per_64_tokens":56.0,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":3,"contraction_candidate_count":3,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":1,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":0,"format_sentence_rule_ids":[],"isolated_candidate_count":36,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":8,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-would-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-conversational_prose-watermarked","word_boundary_candidate_count":36,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":40,"candidates_per_64_tokens":46.5455,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":0,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":3,"format_clause_candidate_count":3,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":0,"format_sentence_rule_ids":[],"isolated_candidate_count":40,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","word_boundary_candidate_count":37,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":52,"candidates_per_64_tokens":60.5091,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":1,"contraction_candidate_count":1,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":2,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":50,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d1-structured_instructional-watermarked","word_boundary_candidate_count":48,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]}],"seed_base":890000,"summary":{"max_candidate_count":52,"mean_candidate_count":38.0,"mean_complementizer_candidate_count":0.0,"mean_coord_comma_candidate_count":0.375,"mean_discourse_comma_candidate_count":0.0,"mean_format_candidate_count":2.125,"mean_format_clause_candidate_count":1.5,"mean_parenthetical_candidate_count":0.0,"mean_prenominal_candidate_count":0.0,"mean_quantifier_of_candidate_count":0.0,"mean_word_boundary_candidate_count":33.375,"min_candidate_count":8,"sample_count":8,"zero_candidate_rows":0}} diff --git a/evidence/cycle7-stage-d-2026-08-25/detector-compare.json b/evidence/cycle7-stage-d-2026-08-25/detector-compare.json new file mode 100644 index 00000000..13b7fb29 --- /dev/null +++ b/evidence/cycle7-stage-d-2026-08-25/detector-compare.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-detector-compare-v1","artifact_hash":"4781844f967595fb00596b462390bc8fc134b37bb5a2d28999e43fa37f19366b","budget":14,"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","geometry_rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":48,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"f3100bf5587d154d35b2b8f2911362087346e35328bcaa90372dbd0c637b0b03","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":79,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":15,"collapsed_token_delta":9,"collapsed_tuple_leak_window_count":16,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1460d612d342c5ede169c304e5629f67749e21fedbd536f195de4d39e93475e0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":57,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"c440b5abd720d2350ad714757c25b21dfdf99afdc1a77590cf3439afd17c4a89","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":50,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"b395a96833a662c4343a3ecac11b90d55cb43ceb8d45cbe9994b06562196e921","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":96,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"ecdd96bb212fe693027c17a46c6a35690a2d41094a0709009f1a07742788251b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":77,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"11d30db670fdb4f154ea6293a3cfd03c520336373244712c926ffc95364fd6a4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":5}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":45,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"a13a8d4ea9630620b9e7acb619192942e7441ae420acb67b068225c0ec077369","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":6},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":78,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"af3aab7589997943bffb495e67aabc6622fcb51a9f4054b0151a416a45d30d57","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":59,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":35,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"8f9ea0a06cdcf396849fa2fcc71d47dfbea0201acac51141ebfbdbd3a78ceed7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":2}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":10,"candidate_exhausted":false,"changed_token_positions":42,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":58,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":58,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":48,"measurement_hash":"4029ff6ea1b88979e3a78870c7c71e981b797b7ec8508c17e32c08327d54ed6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":6,"root_window_count":58,"selected_count":4,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":4,"tuple_leak_window_count":48},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":18,"candidate_exhausted":false,"changed_token_positions":38,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":48,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"7e67e88491bff7106bcc38e7c6ce3e706f13e91f09187521eab83eea2f5252d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":14,"root_window_count":58,"selected_count":4,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":4,"tuple_leak_window_count":47},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":false,"changed_token_positions":62,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":47,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"3971869c7cdddf4e4b6c4742c7359dd753b01f51fa88a6266def044c25626e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":5,"root_window_count":58,"selected_count":3,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":3,"tuple_leak_window_count":47}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"b3fd9529a6e729c576ad21ac049edf0a6a006c08fb4381fab45c95e1ec361604","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":108,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e030de3a108659d250d133760886026f4fa53f4e93519cba9e17eaf1cf9d417b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":88,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":50,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":12,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"f16f341cbb6dd640057973e7ed995a686bade8f79846688d35e429675fe72969","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":4}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":53,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":53,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"e3f2fcf8ec0b9153048c3f3d472fc02b534b8b30d8201778eb8ca4617b197d8f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-clear","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-seem","surface-space-after-any-word","contract-would-not","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":94,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":14,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":14,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"de0df89b4fe49150d5613af6c6b8809b124b9cd195bb8dccc909eabe67ed7450","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","expand-do-not","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":5},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"be2619857231ae3b113924e575227531a81a90c0d34f597b02873821c1100780","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":3}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"2bac6286f5a858ff7a23871ec82bf36c71fcf264ec6480146be5eea65a5a21b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":95,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":6,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"89c6ed6b236af0bb6fb44cee9e07075d916976cd0a8322f6b823dcfa63b51feb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":78,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":6,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":6,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"0113cd78b752b204a4bbf65bc20daf0f73799c13b7a9273872b82c1a576d005a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":6}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"6938029b9b95ef16970ebf6b83290d62917666d5d2ddbdcda744e16c6d2ff1d4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"07f3db060d41125b6a2fb3643629bfbbca1dbd168d74ca499cf7c4ea6babd488","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":91,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9444477926547b21f5cf1f9faa98ff9a195dd7e933fb776e3716f4d20383ab4c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":5}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d1-structured_instructional-watermarked"}],"model":"openai-community/gpt2","model_revision":"607a30d783dfa663caf39e06633721c8d4cfcd7e","samples":[{"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","seed":890000,"text":"\n\nDo not use a standard form for describing a document. If a document has only one name, write the name in a generic way.\n\nDo not use a comma-separated list of words.\n\nDo not use a string format for formatting a document.\n\nDo not use any special character","text_sha256":"17c4419a6c05e20d83dedde1f8243d755b17a7fd25f2858c128f60d35272e9a7"},{"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d1-general_explanatory-watermarked","seed":890000,"text":" Create a simple web site that will look more like a regular website.\n\nThis web site is called the Wordbase web site.\n\nI have created a simple webpage that is optimized for the latest version of Wordbase. I have set the minimum size of the page to 3kb, which is the size of","text_sha256":"16375654a2a2b4faca6b3be1aa847c66b9c91f1c7dbfeaa8df0e7f44c6cab8f3"},{"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","seed":890032,"text":"\n\nDefine the main idea, one failure mode, and one validation check. Write the entire codebase in a format suitable for a simple text-to-speech document.\n\nWrite the entire codebase in a format suitable for a simple text-to-speech document. Explain the problem, and describe the","text_sha256":"48642c2c1848858f3235cf3d040f9000adb847ec35ae6f00d9037fa11316657f"},{"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d1-technical_explanation-watermarked","seed":890032,"text":" Use a tool to test for the correctness of the problem.\n\n1.3.3.2.2.6.9.3.2.3.4.4.5.6.7.8.9.10.11.12.13.14.15.16.17.","text_sha256":"26a640fa9cadffd07a943d17277fd8e6d26f373bed1d8fc9b74e3ce3e92c242a"},{"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","seed":890064,"text":"\n\n\"We've been working on document structure for the past 5 years, and now the problem is that the only way to keep it from becoming a headache for all of us is to have a document structure that is perfect for all of us. In other words, you don't have to have a complete outline of","text_sha256":"d9fa9dd5d48b717274543a5c06b405c41f63c849c3938d52bce135f14425e237"},{"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d1-conversational_prose-watermarked","seed":890064,"text":" Use a clear and concise introduction to the subject.\n\nAvoid using formalisms (such as \"I've been looking for this for a while now\").\n\nAvoid using short, direct answers that seem to distract.\n\nDon't use simple phrases that would not work for someone who is new to the subject.","text_sha256":"fbcb33a63e898845b7364f9267daf110b76f640010c5fa5a217875e560ea05ea"},{"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","seed":890096,"text":" When you do the same, you get the same results.\n\nTo see if you can solve a simple problem with a few sentences, just write a simple one.\n\nIf you want to see the results when you solve a problem and have it be a problem for you, you can try writing a short one","text_sha256":"54817cbc278cfcd741924cf5914c0a30b7744443445e8c1e5937818fed93092b"},{"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d1-structured_instructional-watermarked","seed":890096,"text":" You will be able to write sentences, paragraphs and paragraphs that don't need to be repeated with other words or sentences.\n\nA more elaborate study with multiple examples. Learn from the previous examples and then repeat them with your entire project.\n\nThe third option is to spend some time explaining your concepts to the student","text_sha256":"51d84b717efe16065e6934c080f3da3260904277bf509e5a102d14409acb271e"}],"sanitizer_ids":["raw","nfkc","cf_strip","nfkc_cf_strip","ws_collapse","ws_collapse_nfkc_cf_strip"],"scored_rows":[{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":48,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"f3100bf5587d154d35b2b8f2911362087346e35328bcaa90372dbd0c637b0b03","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":7},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.44217171717171716,"sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.46819645732689213,"text_hash":"caaea1bf7ff28f521e6126b91437e2268faecc624822d3bc88bdb1c0fbe4fb24"},"nfkc":{"detected":false,"score":0.46819645732689213,"text_hash":"caaea1bf7ff28f521e6126b91437e2268faecc624822d3bc88bdb1c0fbe4fb24"},"nfkc_cf_strip":{"detected":false,"score":0.46819645732689213,"text_hash":"caaea1bf7ff28f521e6126b91437e2268faecc624822d3bc88bdb1c0fbe4fb24"},"raw":{"detected":false,"score":0.46819645732689213,"text_hash":"caaea1bf7ff28f521e6126b91437e2268faecc624822d3bc88bdb1c0fbe4fb24"},"ws_collapse":{"detected":false,"score":0.4540310512532735,"text_hash":"c6e2371ea1abbf311cf11fb97d31879e8f9973596c6d33e19784e7415d51b43d"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4540310512532735,"text_hash":"c6e2371ea1abbf311cf11fb97d31879e8f9973596c6d33e19784e7415d51b43d"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"c440b5abd720d2350ad714757c25b21dfdf99afdc1a77590cf3439afd17c4a89","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":50,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.44217171717171716,"sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"},"nfkc":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"},"nfkc_cf_strip":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"},"raw":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"},"ws_collapse":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49617266414141414,"text_hash":"2ee29536e0c445a37c0d6d40478b8377da10bfb0848e97c80b84a92b6024ce1c"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":79,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":15,"collapsed_token_delta":9,"collapsed_tuple_leak_window_count":16,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1460d612d342c5ede169c304e5629f67749e21fedbd536f195de4d39e93475e0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":57,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":4},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.44217171717171716,"sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5078319426145513,"text_hash":"fc6e9ded1860e35d0d3f6510acfb6af2112484d9143fba8e2ba9444aba09eef1"},"nfkc":{"detected":false,"score":0.5078319426145513,"text_hash":"fc6e9ded1860e35d0d3f6510acfb6af2112484d9143fba8e2ba9444aba09eef1"},"nfkc_cf_strip":{"detected":false,"score":0.5078319426145513,"text_hash":"fc6e9ded1860e35d0d3f6510acfb6af2112484d9143fba8e2ba9444aba09eef1"},"raw":{"detected":false,"score":0.5078319426145513,"text_hash":"fc6e9ded1860e35d0d3f6510acfb6af2112484d9143fba8e2ba9444aba09eef1"},"ws_collapse":{"detected":false,"score":0.5060763888888888,"text_hash":"a1f5612842e74ef408a1a067eff2ef28e9726a04d4af74fa4aec6951f5f485b0"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5060763888888888,"text_hash":"a1f5612842e74ef408a1a067eff2ef28e9726a04d4af74fa4aec6951f5f485b0"}}},{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"b395a96833a662c4343a3ecac11b90d55cb43ceb8d45cbe9994b06562196e921","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6447390572390572,"sample_id":"cycle7-stage-d1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5271635271635272,"text_hash":"85012f6d3e3b97732bd929808024bfd6252b9857c3d7ed0f39a7940daf410eb2"},"nfkc":{"detected":false,"score":0.5271635271635272,"text_hash":"85012f6d3e3b97732bd929808024bfd6252b9857c3d7ed0f39a7940daf410eb2"},"nfkc_cf_strip":{"detected":false,"score":0.5271635271635272,"text_hash":"85012f6d3e3b97732bd929808024bfd6252b9857c3d7ed0f39a7940daf410eb2"},"raw":{"detected":false,"score":0.5271635271635272,"text_hash":"85012f6d3e3b97732bd929808024bfd6252b9857c3d7ed0f39a7940daf410eb2"},"ws_collapse":{"detected":true,"score":0.6447390572390572,"text_hash":"16375654a2a2b4faca6b3be1aa847c66b9c91f1c7dbfeaa8df0e7f44c6cab8f3"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6447390572390572,"text_hash":"16375654a2a2b4faca6b3be1aa847c66b9c91f1c7dbfeaa8df0e7f44c6cab8f3"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"11d30db670fdb4f154ea6293a3cfd03c520336373244712c926ffc95364fd6a4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":5},"label":"watermarked","pristine_detected":true,"pristine_score":0.6447390572390572,"sample_id":"cycle7-stage-d1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"},"nfkc":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"},"nfkc_cf_strip":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"},"raw":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"},"ws_collapse":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5294499044499045,"text_hash":"a51830599e210ec8b26664baa2a59e2fef84416ab1716e20455177cf4728f53b"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":96,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"ecdd96bb212fe693027c17a46c6a35690a2d41094a0709009f1a07742788251b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":77,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":7},"label":"watermarked","pristine_detected":true,"pristine_score":0.6447390572390572,"sample_id":"cycle7-stage-d1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.5681135681135682,"text_hash":"b793077f60d4c63b03f06a6ed960c52553acbe331ceaaa6813becd3ce7a673be"},"nfkc":{"detected":true,"score":0.5681135681135682,"text_hash":"b793077f60d4c63b03f06a6ed960c52553acbe331ceaaa6813becd3ce7a673be"},"nfkc_cf_strip":{"detected":true,"score":0.5681135681135682,"text_hash":"b793077f60d4c63b03f06a6ed960c52553acbe331ceaaa6813becd3ce7a673be"},"raw":{"detected":true,"score":0.5681135681135682,"text_hash":"b793077f60d4c63b03f06a6ed960c52553acbe331ceaaa6813becd3ce7a673be"},"ws_collapse":{"detected":true,"score":0.587344028520499,"text_hash":"260d8a4b2f5761c2e14cf7cf237491e25a759ab4388d35c526f5fcb3b6eab5f8"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.587344028520499,"text_hash":"260d8a4b2f5761c2e14cf7cf237491e25a759ab4388d35c526f5fcb3b6eab5f8"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":45,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"a13a8d4ea9630620b9e7acb619192942e7441ae420acb67b068225c0ec077369","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":6},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4960157126823793,"sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5282651072124757,"text_hash":"56b4518c5a8f69a024776b0aa55be949e5c5c15ec9eac5ca9eef20d1b1d532ac"},"nfkc":{"detected":false,"score":0.5282651072124757,"text_hash":"56b4518c5a8f69a024776b0aa55be949e5c5c15ec9eac5ca9eef20d1b1d532ac"},"nfkc_cf_strip":{"detected":false,"score":0.5282651072124757,"text_hash":"56b4518c5a8f69a024776b0aa55be949e5c5c15ec9eac5ca9eef20d1b1d532ac"},"raw":{"detected":false,"score":0.5282651072124757,"text_hash":"56b4518c5a8f69a024776b0aa55be949e5c5c15ec9eac5ca9eef20d1b1d532ac"},"ws_collapse":{"detected":false,"score":0.4960157126823793,"text_hash":"48642c2c1848858f3235cf3d040f9000adb847ec35ae6f00d9037fa11316657f"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4960157126823793,"text_hash":"48642c2c1848858f3235cf3d040f9000adb847ec35ae6f00d9037fa11316657f"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":35,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"8f9ea0a06cdcf396849fa2fcc71d47dfbea0201acac51141ebfbdbd3a78ceed7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":2},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4960157126823793,"sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"},"nfkc":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"},"nfkc_cf_strip":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"},"raw":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"},"ws_collapse":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5191747988358157,"text_hash":"3370c592bf130a764708cfdf031f03de173ecbce0b12e94a92142ca9bc21f7dc"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":78,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"af3aab7589997943bffb495e67aabc6622fcb51a9f4054b0151a416a45d30d57","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":59,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4960157126823793,"sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5055840091051358,"text_hash":"5c3e33c52bef71e23c19a6cb8b48db087aec32aee629e07d35337d518ae12f97"},"nfkc":{"detected":false,"score":0.5055840091051358,"text_hash":"5c3e33c52bef71e23c19a6cb8b48db087aec32aee629e07d35337d518ae12f97"},"nfkc_cf_strip":{"detected":false,"score":0.5055840091051358,"text_hash":"5c3e33c52bef71e23c19a6cb8b48db087aec32aee629e07d35337d518ae12f97"},"raw":{"detected":false,"score":0.5055840091051358,"text_hash":"5c3e33c52bef71e23c19a6cb8b48db087aec32aee629e07d35337d518ae12f97"},"ws_collapse":{"detected":false,"score":0.5072206439393939,"text_hash":"f0ffd7ed3da778f0f858137fba625028d7eac48d9232677d42f62fbf8f32f75b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5072206439393939,"text_hash":"f0ffd7ed3da778f0f858137fba625028d7eac48d9232677d42f62fbf8f32f75b"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":10,"candidate_exhausted":false,"changed_token_positions":42,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":58,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":58,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":48,"measurement_hash":"4029ff6ea1b88979e3a78870c7c71e981b797b7ec8508c17e32c08327d54ed6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":6,"root_window_count":58,"selected_count":4,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":4,"tuple_leak_window_count":48},"label":"watermarked","pristine_detected":false,"pristine_score":0.5460640891675375,"sample_id":"cycle7-stage-d1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5177174975562072,"text_hash":"40a1099e90abb3ae7916f329699260dd87a9bb50b1af38bf294f56be7dce08ae"},"nfkc":{"detected":false,"score":0.5177174975562072,"text_hash":"40a1099e90abb3ae7916f329699260dd87a9bb50b1af38bf294f56be7dce08ae"},"nfkc_cf_strip":{"detected":false,"score":0.5177174975562072,"text_hash":"40a1099e90abb3ae7916f329699260dd87a9bb50b1af38bf294f56be7dce08ae"},"raw":{"detected":false,"score":0.5177174975562072,"text_hash":"40a1099e90abb3ae7916f329699260dd87a9bb50b1af38bf294f56be7dce08ae"},"ws_collapse":{"detected":false,"score":0.5460640891675375,"text_hash":"26a640fa9cadffd07a943d17277fd8e6d26f373bed1d8fc9b74e3ce3e92c242a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5460640891675375,"text_hash":"26a640fa9cadffd07a943d17277fd8e6d26f373bed1d8fc9b74e3ce3e92c242a"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":false,"changed_token_positions":62,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":47,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"3971869c7cdddf4e4b6c4742c7359dd753b01f51fa88a6266def044c25626e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":5,"root_window_count":58,"selected_count":3,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":3,"tuple_leak_window_count":47},"label":"watermarked","pristine_detected":false,"pristine_score":0.5460640891675375,"sample_id":"cycle7-stage-d1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"},"nfkc":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"},"nfkc_cf_strip":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"},"raw":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"},"ws_collapse":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5316691505216095,"text_hash":"46e7e234048243aff8ab45b75f75162bfb2db7b406f30acff127cf6d961043c1"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":18,"candidate_exhausted":false,"changed_token_positions":38,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":48,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"7e67e88491bff7106bcc38e7c6ce3e706f13e91f09187521eab83eea2f5252d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":14,"root_window_count":58,"selected_count":4,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":4,"tuple_leak_window_count":47},"label":"watermarked","pristine_detected":false,"pristine_score":0.5460640891675375,"sample_id":"cycle7-stage-d1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5263929618768328,"text_hash":"436225d15150df321715723470758d20c94ec8fae896ae5f19bec3774a9c4d7c"},"nfkc":{"detected":false,"score":0.5263929618768328,"text_hash":"436225d15150df321715723470758d20c94ec8fae896ae5f19bec3774a9c4d7c"},"nfkc_cf_strip":{"detected":false,"score":0.5263929618768328,"text_hash":"436225d15150df321715723470758d20c94ec8fae896ae5f19bec3774a9c4d7c"},"raw":{"detected":false,"score":0.5263929618768328,"text_hash":"436225d15150df321715723470758d20c94ec8fae896ae5f19bec3774a9c4d7c"},"ws_collapse":{"detected":false,"score":0.5159380692167578,"text_hash":"012f4c0287b78a43588d4acdd09b404177e81429550bc5c7b3506c83f6894c5a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5159380692167578,"text_hash":"012f4c0287b78a43588d4acdd09b404177e81429550bc5c7b3506c83f6894c5a"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"b3fd9529a6e729c576ad21ac049edf0a6a006c08fb4381fab45c95e1ec361604","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5017120356103407,"sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5410353535353535,"text_hash":"0af75ea3389f7274a40d749433bcac34c58259e9077c5e7e39affa1f87cf9940"},"nfkc":{"detected":false,"score":0.5410353535353535,"text_hash":"0af75ea3389f7274a40d749433bcac34c58259e9077c5e7e39affa1f87cf9940"},"nfkc_cf_strip":{"detected":false,"score":0.5410353535353535,"text_hash":"0af75ea3389f7274a40d749433bcac34c58259e9077c5e7e39affa1f87cf9940"},"raw":{"detected":false,"score":0.5410353535353535,"text_hash":"0af75ea3389f7274a40d749433bcac34c58259e9077c5e7e39affa1f87cf9940"},"ws_collapse":{"detected":false,"score":0.5017120356103407,"text_hash":"d9fa9dd5d48b717274543a5c06b405c41f63c849c3938d52bce135f14425e237"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5017120356103407,"text_hash":"d9fa9dd5d48b717274543a5c06b405c41f63c849c3938d52bce135f14425e237"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":50,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":12,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"f16f341cbb6dd640057973e7ed995a686bade8f79846688d35e429675fe72969","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":4},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5017120356103407,"sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"},"nfkc":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"},"nfkc_cf_strip":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"},"raw":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"},"ws_collapse":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5184948072272016,"text_hash":"d11ce8fa0a633a1ebcfc8f8b3d8b51633a6ee561d23ed2b54f2c6b7b924aef21"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":108,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e030de3a108659d250d133760886026f4fa53f4e93519cba9e17eaf1cf9d417b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":88,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5017120356103407,"sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49845679012345673,"text_hash":"c6f54e14ca7dc4f450b1977c2f23eac6f757f90b4d25d0ec8e2e47902d42a0a1"},"nfkc":{"detected":false,"score":0.49845679012345673,"text_hash":"c6f54e14ca7dc4f450b1977c2f23eac6f757f90b4d25d0ec8e2e47902d42a0a1"},"nfkc_cf_strip":{"detected":false,"score":0.49845679012345673,"text_hash":"c6f54e14ca7dc4f450b1977c2f23eac6f757f90b4d25d0ec8e2e47902d42a0a1"},"raw":{"detected":false,"score":0.49845679012345673,"text_hash":"c6f54e14ca7dc4f450b1977c2f23eac6f757f90b4d25d0ec8e2e47902d42a0a1"},"ws_collapse":{"detected":false,"score":0.49747474747474746,"text_hash":"32118f8aab08fe354c1d118c35d625b03b2f29d6f4b5927e5ebd6e69205798bc"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49747474747474746,"text_hash":"32118f8aab08fe354c1d118c35d625b03b2f29d6f4b5927e5ebd6e69205798bc"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":53,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":53,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"e3f2fcf8ec0b9153048c3f3d472fc02b534b8b30d8201778eb8ca4617b197d8f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-clear","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-seem","surface-space-after-any-word","contract-would-not","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.6670946755692517,"sample_id":"cycle7-stage-d1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5139407776394078,"text_hash":"3f9cb26e46a0225c1ad664ff657462120b856f77aa47d90862c28ca0d5470fe7"},"nfkc":{"detected":false,"score":0.5139407776394078,"text_hash":"3f9cb26e46a0225c1ad664ff657462120b856f77aa47d90862c28ca0d5470fe7"},"nfkc_cf_strip":{"detected":false,"score":0.5139407776394078,"text_hash":"3f9cb26e46a0225c1ad664ff657462120b856f77aa47d90862c28ca0d5470fe7"},"raw":{"detected":false,"score":0.5139407776394078,"text_hash":"3f9cb26e46a0225c1ad664ff657462120b856f77aa47d90862c28ca0d5470fe7"},"ws_collapse":{"detected":true,"score":0.6423985618900873,"text_hash":"ac7116296d21b99f2016d129774310ed6112997dafbe47094549582e449770c7"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6423985618900873,"text_hash":"ac7116296d21b99f2016d129774310ed6112997dafbe47094549582e449770c7"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"be2619857231ae3b113924e575227531a81a90c0d34f597b02873821c1100780","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":3},"label":"watermarked","pristine_detected":true,"pristine_score":0.6670946755692517,"sample_id":"cycle7-stage-d1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"},"nfkc":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"},"nfkc_cf_strip":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"},"raw":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"},"ws_collapse":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5038902538902539,"text_hash":"f359dc3219bd1c2fe2b02c98410a1bccea20199c70efff07fe6c015669271f85"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":94,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":14,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":14,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"de0df89b4fe49150d5613af6c6b8809b124b9cd195bb8dccc909eabe67ed7450","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","expand-do-not","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":5},"label":"watermarked","pristine_detected":true,"pristine_score":0.6670946755692517,"sample_id":"cycle7-stage-d1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5144007644007644,"text_hash":"2408b6050d40cc1a1f91efd729a2549d8f36bdc84353b73048cce72e0ef0fec9"},"nfkc":{"detected":false,"score":0.5144007644007644,"text_hash":"2408b6050d40cc1a1f91efd729a2549d8f36bdc84353b73048cce72e0ef0fec9"},"nfkc_cf_strip":{"detected":false,"score":0.5144007644007644,"text_hash":"2408b6050d40cc1a1f91efd729a2549d8f36bdc84353b73048cce72e0ef0fec9"},"raw":{"detected":false,"score":0.5144007644007644,"text_hash":"2408b6050d40cc1a1f91efd729a2549d8f36bdc84353b73048cce72e0ef0fec9"},"ws_collapse":{"detected":true,"score":0.5705266955266955,"text_hash":"cae0515c958a63d350a1b52d5ba5ca226a43ee1baa7e3abdd8262735f38fcda3"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5705266955266955,"text_hash":"cae0515c958a63d350a1b52d5ba5ca226a43ee1baa7e3abdd8262735f38fcda3"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"2bac6286f5a858ff7a23871ec82bf36c71fcf264ec6480146be5eea65a5a21b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5273569023569024,"sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5070980070980071,"text_hash":"92a4a46d8518932d3382ddcb49671997e1507e7550c1a4a0b6492c48ecf6b10b"},"nfkc":{"detected":false,"score":0.5070980070980071,"text_hash":"92a4a46d8518932d3382ddcb49671997e1507e7550c1a4a0b6492c48ecf6b10b"},"nfkc_cf_strip":{"detected":false,"score":0.5070980070980071,"text_hash":"92a4a46d8518932d3382ddcb49671997e1507e7550c1a4a0b6492c48ecf6b10b"},"raw":{"detected":false,"score":0.5070980070980071,"text_hash":"92a4a46d8518932d3382ddcb49671997e1507e7550c1a4a0b6492c48ecf6b10b"},"ws_collapse":{"detected":false,"score":0.5273569023569024,"text_hash":"54817cbc278cfcd741924cf5914c0a30b7744443445e8c1e5937818fed93092b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5273569023569024,"text_hash":"54817cbc278cfcd741924cf5914c0a30b7744443445e8c1e5937818fed93092b"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":6,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":6,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"0113cd78b752b204a4bbf65bc20daf0f73799c13b7a9273872b82c1a576d005a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":6},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5273569023569024,"sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"},"nfkc":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"},"nfkc_cf_strip":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"},"raw":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"},"ws_collapse":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5022262094630515,"text_hash":"6b01eb7314efbd9567714530e3321440efda8013ccc2ce102039eb79be377a5d"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":95,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":6,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"89c6ed6b236af0bb6fb44cee9e07075d916976cd0a8322f6b823dcfa63b51feb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":78,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5273569023569024,"sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.46195058695058694,"text_hash":"d022dbc454aa0f327ba676c809503eac271bfa48cb494678c32b3712edfe1923"},"nfkc":{"detected":false,"score":0.46195058695058694,"text_hash":"d022dbc454aa0f327ba676c809503eac271bfa48cb494678c32b3712edfe1923"},"nfkc_cf_strip":{"detected":false,"score":0.46195058695058694,"text_hash":"d022dbc454aa0f327ba676c809503eac271bfa48cb494678c32b3712edfe1923"},"raw":{"detected":false,"score":0.46195058695058694,"text_hash":"d022dbc454aa0f327ba676c809503eac271bfa48cb494678c32b3712edfe1923"},"ws_collapse":{"detected":false,"score":0.4923094582185491,"text_hash":"1cc8851c1ebb24d970bab5760b68692c914b8e451c8d5738eabf1328e46eb96a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4923094582185491,"text_hash":"1cc8851c1ebb24d970bab5760b68692c914b8e451c8d5738eabf1328e46eb96a"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"6938029b9b95ef16970ebf6b83290d62917666d5d2ddbdcda744e16c6d2ff1d4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.6528198653198652,"sample_id":"cycle7-stage-d1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4962121212121212,"text_hash":"a063ba59e9c8b6e8a1b4f2d62679da032103672a93ab2958e5a9fb9e139a93e7"},"nfkc":{"detected":false,"score":0.4962121212121212,"text_hash":"a063ba59e9c8b6e8a1b4f2d62679da032103672a93ab2958e5a9fb9e139a93e7"},"nfkc_cf_strip":{"detected":false,"score":0.4962121212121212,"text_hash":"a063ba59e9c8b6e8a1b4f2d62679da032103672a93ab2958e5a9fb9e139a93e7"},"raw":{"detected":false,"score":0.4962121212121212,"text_hash":"a063ba59e9c8b6e8a1b4f2d62679da032103672a93ab2958e5a9fb9e139a93e7"},"ws_collapse":{"detected":true,"score":0.6528198653198652,"text_hash":"51d84b717efe16065e6934c080f3da3260904277bf509e5a102d14409acb271e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6528198653198652,"text_hash":"51d84b717efe16065e6934c080f3da3260904277bf509e5a102d14409acb271e"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9444477926547b21f5cf1f9faa98ff9a195dd7e933fb776e3716f4d20383ab4c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":5},"label":"watermarked","pristine_detected":true,"pristine_score":0.6528198653198652,"sample_id":"cycle7-stage-d1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"},"nfkc":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"},"nfkc_cf_strip":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"},"raw":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"},"ws_collapse":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.50003367003367,"text_hash":"888df6c622931950441e5c1b1aa10e719de53380bb628c7050f1f8b544a4a65b"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"07f3db060d41125b6a2fb3643629bfbbca1dbd168d74ca499cf7c4ea6babd488","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":91,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6528198653198652,"sample_id":"cycle7-stage-d1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5147420147420146,"text_hash":"2952761782d4ee469c41b9092c742cd4543aa72dde9775d3d3f2057c72aea71f"},"nfkc":{"detected":false,"score":0.5147420147420146,"text_hash":"2952761782d4ee469c41b9092c742cd4543aa72dde9775d3d3f2057c72aea71f"},"nfkc_cf_strip":{"detected":false,"score":0.5147420147420146,"text_hash":"2952761782d4ee469c41b9092c742cd4543aa72dde9775d3d3f2057c72aea71f"},"raw":{"detected":false,"score":0.5147420147420146,"text_hash":"2952761782d4ee469c41b9092c742cd4543aa72dde9775d3d3f2057c72aea71f"},"ws_collapse":{"detected":true,"score":0.6245390412057078,"text_hash":"1198bf2927ab8fb017829c59abb45dcba06561c6f6838a94baf30c665b7e6e52"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6245390412057078,"text_hash":"1198bf2927ab8fb017829c59abb45dcba06561c6f6838a94baf30c665b7e6e52"}}}],"secret_access_used_for_selection":false,"seed_base":890000,"stage":"D1","summaries":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","median_raw_watermarked_score":0.5177174975562072,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":3,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5137584808928158,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5271635271635272,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":3,"ws_collapse_watermarked_mean_score":0.6215053934041368},"cycle7_combined":{"arm_id":"cycle7_combined","median_raw_watermarked_score":0.5263929618768328,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":3,"raw_unwatermarked_detected":0,"raw_watermarked_detected":1,"raw_watermarked_mean_score":0.530912327283295,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5681135681135682,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":3,"ws_collapse_watermarked_mean_score":0.574586958617415},"cycle7_durable":{"arm_id":"cycle7_durable","median_raw_watermarked_score":0.5294499044499045,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":3,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5162607447238594,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5316691505216095,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":0,"ws_collapse_watermarked_mean_score":0.5162607447238594}},"threshold":0.5570987654320988,"topic":"document structure"} diff --git a/evidence/cycle7-stage-d-2026-08-25/geometry.json b/evidence/cycle7-stage-d-2026-08-25/geometry.json new file mode 100644 index 00000000..8b2c9e1f --- /dev/null +++ b/evidence/cycle7-stage-d-2026-08-25/geometry.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-geometry-v1","arm_ids":["cycle6_spacing_b14","cycle7_durable","cycle7_combined"],"artifact_hash":"5a0fe8cfffa8db11ff6f25da93cad26dc8d532a5a36a1454a1c4fb7876ef981a","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","durable_intact_means":{"collapsed_intact_fraction_of_root":0.164079822616408,"mean_collapsed_intact_window_count":9.25,"mean_intact_window_count":9.25,"mean_root_window_count":56.375,"mean_selected_count":12.625},"rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":48,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"f3100bf5587d154d35b2b8f2911362087346e35328bcaa90372dbd0c637b0b03","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":79,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":15,"collapsed_token_delta":9,"collapsed_tuple_leak_window_count":16,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1460d612d342c5ede169c304e5629f67749e21fedbd536f195de4d39e93475e0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":57,"root_window_count":50,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"c440b5abd720d2350ad714757c25b21dfdf99afdc1a77590cf3439afd17c4a89","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":50,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"b395a96833a662c4343a3ecac11b90d55cb43ceb8d45cbe9994b06562196e921","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":96,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"ecdd96bb212fe693027c17a46c6a35690a2d41094a0709009f1a07742788251b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":77,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-comma"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"11d30db670fdb4f154ea6293a3cfd03c520336373244712c926ffc95364fd6a4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-contract-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":5}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":43,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":45,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"a13a8d4ea9630620b9e7acb619192942e7441ae420acb67b068225c0ec077369","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":6},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":78,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"af3aab7589997943bffb495e67aabc6622fcb51a9f4054b0151a416a45d30d57","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":59,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":35,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"8f9ea0a06cdcf396849fa2fcc71d47dfbea0201acac51141ebfbdbd3a78ceed7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":19,"root_window_count":45,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":2}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":10,"candidate_exhausted":false,"changed_token_positions":42,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":58,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":58,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":48,"measurement_hash":"4029ff6ea1b88979e3a78870c7c71e981b797b7ec8508c17e32c08327d54ed6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":6,"root_window_count":58,"selected_count":4,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":4,"tuple_leak_window_count":48},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":18,"candidate_exhausted":false,"changed_token_positions":38,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":48,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"7e67e88491bff7106bcc38e7c6ce3e706f13e91f09187521eab83eea2f5252d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":14,"root_window_count":58,"selected_count":4,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":4,"tuple_leak_window_count":47},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":false,"changed_token_positions":62,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":47,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"3971869c7cdddf4e4b6c4742c7359dd753b01f51fa88a6266def044c25626e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":5,"root_window_count":58,"selected_count":3,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":3,"tuple_leak_window_count":47}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"b3fd9529a6e729c576ad21ac049edf0a6a006c08fb4381fab45c95e1ec361604","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":108,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e030de3a108659d250d133760886026f4fa53f4e93519cba9e17eaf1cf9d417b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":88,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-keep","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":50,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":12,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"f16f341cbb6dd640057973e7ed995a686bade8f79846688d35e429675fe72969","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":4}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":53,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":53,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"e3f2fcf8ec0b9153048c3f3d472fc02b534b8b30d8201778eb8ca4617b197d8f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-clear","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-seem","surface-space-after-any-word","contract-would-not","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":94,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":14,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":14,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"de0df89b4fe49150d5613af6c6b8809b124b9cd195bb8dccc909eabe67ed7450","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","expand-do-not","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":5},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":14,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"be2619857231ae3b113924e575227531a81a90c0d34f597b02873821c1100780","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-expand-i-have","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":14,"tuple_leak_window_count":3}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"2bac6286f5a858ff7a23871ec82bf36c71fcf264ec6480146be5eea65a5a21b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":95,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":6,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"89c6ed6b236af0bb6fb44cee9e07075d916976cd0a8322f6b823dcfa63b51feb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":78,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":6,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":6,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"0113cd78b752b204a4bbf65bc20daf0f73799c13b7a9273872b82c1a576d005a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":6}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"6938029b9b95ef16970ebf6b83290d62917666d5d2ddbdcda744e16c6d2ff1d4","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":41,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"07f3db060d41125b6a2fb3643629bfbbca1dbd168d74ca499cf7c4ea6babd488","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":91,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":5,"collapsed_token_delta":15,"collapsed_tuple_leak_window_count":5,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9444477926547b21f5cf1f9faa98ff9a195dd7e933fb776e3716f4d20383ab4c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":5}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d1-structured_instructional-watermarked"}],"seed_base":890000} diff --git a/evidence/cycle7-stage-d-2026-08-25/samples.json b/evidence/cycle7-stage-d-2026-08-25/samples.json new file mode 100644 index 00000000..93bec4d9 --- /dev/null +++ b/evidence/cycle7-stage-d-2026-08-25/samples.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-samples-v1","artifact_hash":"70affa24d42354a0812e66fe731a15e85ab32478884bb8df6bd6adb3de2a2219","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","samples":[{"domain":"general_explanatory","label":"unwatermarked","prompt":"Explain in plain English why document structure matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-d1-general_explanatory-unwatermarked","seed":890000,"text":"\n\nDo not use a standard form for describing a document. If a document has only one name, write the name in a generic way.\n\nDo not use a comma-separated list of words.\n\nDo not use a string format for formatting a document.\n\nDo not use any special character","text_sha256":"17c4419a6c05e20d83dedde1f8243d755b17a7fd25f2858c128f60d35272e9a7"},{"domain":"general_explanatory","label":"watermarked","prompt":"Explain in plain English why document structure matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-d1-general_explanatory-watermarked","seed":890000,"text":" Create a simple web site that will look more like a regular website.\n\nThis web site is called the Wordbase web site.\n\nI have created a simple webpage that is optimized for the latest version of Wordbase. I have set the minimum size of the page to 3kb, which is the size of","text_sha256":"16375654a2a2b4faca6b3be1aa847c66b9c91f1c7dbfeaa8df0e7f44c6cab8f3"},{"domain":"technical_explanation","label":"unwatermarked","prompt":"Give a technical explanation of document structure in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-d1-technical_explanation-unwatermarked","seed":890032,"text":"\n\nDefine the main idea, one failure mode, and one validation check. Write the entire codebase in a format suitable for a simple text-to-speech document.\n\nWrite the entire codebase in a format suitable for a simple text-to-speech document. Explain the problem, and describe the","text_sha256":"48642c2c1848858f3235cf3d040f9000adb847ec35ae6f00d9037fa11316657f"},{"domain":"technical_explanation","label":"watermarked","prompt":"Give a technical explanation of document structure in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-d1-technical_explanation-watermarked","seed":890032,"text":" Use a tool to test for the correctness of the problem.\n\n1.3.3.2.2.6.9.3.2.3.4.4.5.6.7.8.9.10.11.12.13.14.15.16.17.","text_sha256":"26a640fa9cadffd07a943d17277fd8e6d26f373bed1d8fc9b74e3ce3e92c242a"},{"domain":"conversational_prose","label":"unwatermarked","prompt":"Answer a colleague who asks why document structure matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-d1-conversational_prose-unwatermarked","seed":890064,"text":"\n\n\"We've been working on document structure for the past 5 years, and now the problem is that the only way to keep it from becoming a headache for all of us is to have a document structure that is perfect for all of us. In other words, you don't have to have a complete outline of","text_sha256":"d9fa9dd5d48b717274543a5c06b405c41f63c849c3938d52bce135f14425e237"},{"domain":"conversational_prose","label":"watermarked","prompt":"Answer a colleague who asks why document structure matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-d1-conversational_prose-watermarked","seed":890064,"text":" Use a clear and concise introduction to the subject.\n\nAvoid using formalisms (such as \"I've been looking for this for a while now\").\n\nAvoid using short, direct answers that seem to distract.\n\nDon't use simple phrases that would not work for someone who is new to the subject.","text_sha256":"fbcb33a63e898845b7364f9267daf110b76f640010c5fa5a217875e560ea05ea"},{"domain":"structured_instructional","label":"unwatermarked","prompt":"Write a short three-step instruction for applying document structure in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-d1-structured_instructional-unwatermarked","seed":890096,"text":" When you do the same, you get the same results.\n\nTo see if you can solve a simple problem with a few sentences, just write a simple one.\n\nIf you want to see the results when you solve a problem and have it be a problem for you, you can try writing a short one","text_sha256":"54817cbc278cfcd741924cf5914c0a30b7744443445e8c1e5937818fed93092b"},{"domain":"structured_instructional","label":"watermarked","prompt":"Write a short three-step instruction for applying document structure in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-d1-structured_instructional-watermarked","seed":890096,"text":" You will be able to write sentences, paragraphs and paragraphs that don't need to be repeated with other words or sentences.\n\nA more elaborate study with multiple examples. Learn from the previous examples and then repeat them with your entire project.\n\nThe third option is to spend some time explaining your concepts to the student","text_sha256":"51d84b717efe16065e6934c080f3da3260904277bf509e5a102d14409acb271e"}],"seed_base":890000,"stage":"D1","topic":"document structure"} diff --git a/fuckmark/cycle7_stage_d_hf.py b/fuckmark/cycle7_stage_d_hf.py index eee8de0f..a129341b 100644 --- a/fuckmark/cycle7_stage_d_hf.py +++ b/fuckmark/cycle7_stage_d_hf.py @@ -8,8 +8,11 @@ from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION from .cycle7.ledger import ( CYCLE7_STAGE_C_VALIDATION_SEED_BASE, + CYCLE7_STAGE_C_VALIDATION_TOPIC, CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_D1_TOPIC, + CYCLE7_VALIDATION_ROLE, + assert_development_seed, assert_rule_construction_seed, ) from .cycle7.stage_d import classify_stage_d_density, density_artifact_stage_d @@ -88,30 +91,74 @@ def run_stage_d1( } -def main(argv: list[str] | None = None) -> int: - parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-d") - parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") - parser.add_argument( - "--output-dir", - type=Path, - default=Path("evidence/cycle7-stage-d-2026-08-25"), +def run_stage_d_validation( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + seed_base = CYCLE7_STAGE_C_VALIDATION_SEED_BASE + topic = CYCLE7_STAGE_C_VALIDATION_TOPIC + assert_development_seed(seed_base, role=CYCLE7_VALIDATION_ROLE) + backend, tokenizer, adapter, identity_hash, eos = _adapter_and_tokenizer(device) + if samples_from is not None: + previous = json.loads(samples_from.read_text(encoding="utf-8")) + samples = tuple(previous["samples"]) + if int(previous["seed_base"]) != seed_base: + raise ValueError("Stage D sample file seed_base does not match the requested ledger seed") + else: + samples = _generate_stage_b_samples(backend, seed_base, topic, "cycle7-stage-d-validation") + density_samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples ) - parser.add_argument("--skip-detector", action="store_true", default=True) - parser.add_argument("--with-detector", action="store_true") - parser.add_argument("--samples-from", type=Path, default=None) - parser.add_argument("--validation", action="store_true") - args = parser.parse_args(argv) - if args.validation: - raise RuntimeError( - f"Stage D validation seed {CYCLE7_STAGE_C_VALIDATION_SEED_BASE} is reserved until a catalog freeze" - ) - skip_detector = not args.with_detector - bundle = run_stage_d1( - device=args.device, - skip_detector=skip_detector, - samples_from=args.samples_from, + density = density_artifact_stage_d( + density_samples, + seed_base=seed_base, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, ) - args.output_dir.mkdir(parents=True, exist_ok=True) + geometry = _geometry_artifact(samples, tokenizer, identity_hash, seed_base) + density_decision = classify_stage_d_density( + density_summary=density["summary"], + collapsed_intact_mean=float(geometry["durable_intact_means"]["mean_collapsed_intact_window_count"]), + source_root_mean=float(geometry["durable_intact_means"]["mean_root_window_count"]), + ) + detector = None + if not skip_detector: + geometry_rows, scored_rows, summaries = _evaluate_samples( + samples, tokenizer, identity_hash, adapter, eos + ) + detector = _build_detector_artifact( + samples, + geometry_rows, + scored_rows, + summaries, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + detector = { + **{k: v for k, v in detector.items() if k != "artifact_hash"}, + "algorithm_version": CYCLE7_STAGE_D_DETECTOR_VERSION, + "seed_base": seed_base, + "stage": "D-validation", + "topic": topic, + } + detector = { + **detector, + "artifact_hash": sha256_json({k: v for k, v in detector.items() if k != "artifact_hash"}), + } + return { + "samples": samples, + "density": density, + "geometry": geometry, + "decision": density_decision, + "detector": detector, + "seed_base": seed_base, + "topic": topic, + "stage": "D-validation", + } + + +def _write_stage_d_bundle(output_dir: Path, bundle: dict[str, object]) -> None: + output_dir.mkdir(parents=True, exist_ok=True) sample_payload = { "algorithm_version": "cycle7-stage-d-samples-v1", "seed_base": bundle["seed_base"], @@ -136,12 +183,43 @@ def main(argv: list[str] | None = None) -> int: **sample_payload, "artifact_hash": sha256_json({k: v for k, v in sample_payload.items() if k != "artifact_hash"}), } - write_canonical_json_fsynced(args.output_dir / "samples.json", sample_payload) - write_canonical_json_fsynced(args.output_dir / "density.json", bundle["density"]) - write_canonical_json_fsynced(args.output_dir / "geometry.json", bundle["geometry"]) - write_canonical_json_fsynced(args.output_dir / "decision.json", bundle["decision"]) + write_canonical_json_fsynced(output_dir / "samples.json", sample_payload) + write_canonical_json_fsynced(output_dir / "density.json", bundle["density"]) + write_canonical_json_fsynced(output_dir / "geometry.json", bundle["geometry"]) + write_canonical_json_fsynced(output_dir / "decision.json", bundle["decision"]) if bundle["detector"] is not None: - write_canonical_json_fsynced(args.output_dir / "detector-compare.json", bundle["detector"]) + write_canonical_json_fsynced(output_dir / "detector-compare.json", bundle["detector"]) + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-d") + parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") + parser.add_argument( + "--output-dir", + type=Path, + default=Path("evidence/cycle7-stage-d-2026-08-25"), + ) + parser.add_argument("--skip-detector", action="store_true", default=True) + parser.add_argument("--with-detector", action="store_true") + parser.add_argument("--samples-from", type=Path, default=None) + parser.add_argument("--validation", action="store_true") + args = parser.parse_args(argv) + skip_detector = not args.with_detector + if args.validation: + if args.output_dir == Path("evidence/cycle7-stage-d-2026-08-25"): + args.output_dir = Path("evidence/cycle7-stage-d-validation-880000-2026-08-25") + bundle = run_stage_d_validation( + device=args.device, + skip_detector=skip_detector, + samples_from=args.samples_from, + ) + else: + bundle = run_stage_d1( + device=args.device, + skip_detector=skip_detector, + samples_from=args.samples_from, + ) + _write_stage_d_bundle(args.output_dir, bundle) print(canonical_json_text(bundle["decision"])) return 0 diff --git a/tests/test_cycle7_stage_d_families.py b/tests/test_cycle7_stage_d_families.py index 7d851ba5..c713c360 100644 --- a/tests/test_cycle7_stage_d_families.py +++ b/tests/test_cycle7_stage_d_families.py @@ -11,6 +11,8 @@ CYCLE7_STAGE_D1_TOPIC, CYCLE7_STAGE_C_VALIDATION_SEED_BASE, CYCLE7_STAGE_C_VALIDATION_TOPIC, + CYCLE7_VALIDATION_ROLE, + assert_development_seed, assert_rule_construction_seed, ) from fuckmark.cycle7.registry import cycle7_durable_transform_registry @@ -40,6 +42,7 @@ def test_stage_d_ledger_identities_are_frozen_before_inspection() -> None: assert CYCLE7_STAGE_C_VALIDATION_SEED_BASE == 880000 assert CYCLE7_STAGE_C_VALIDATION_TOPIC == "independent check" assert_rule_construction_seed(890000) + assert_development_seed(CYCLE7_STAGE_C_VALIDATION_SEED_BASE, role=CYCLE7_VALIDATION_ROLE) def test_word_boundary_swaps_space_and_newline() -> None: From 267ac240c9d34ec05833897f93108d2d7d3562dd Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 23:18:37 +0000 Subject: [PATCH 3/6] Record Stage D validation on seed 880000 and lock catalog v5. Disjoint seed 880000 replicates D1: wrap density 37.875, collapsed intact/root 0.080, durable 0/4 after whitespace collapse, Cycle 6 spacing 4/4 after collapse. Do not retune v5 on 890000 or 880000. Confirmation seeds remain unseen. Co-authored-by: Byte271 --- docs/cycle7/README.md | 8 ++-- docs/cycle7/literature.md | 2 +- docs/cycle7/live-state-audit.md | 2 +- docs/cycle7/seed-ledger.md | 8 ++-- docs/cycle7/stage-d-decision.md | 48 +++++++++++++++++-- .../decision.json | 1 + .../density.json | 1 + .../detector-compare.json | 1 + .../geometry.json | 1 + .../samples.json | 1 + fuckmark/cycle7/ledger.py | 13 +++-- fuckmark/cycle7/stage_d.py | 3 +- tests/test_cycle7_ledger.py | 4 +- tests/test_cycle7_stage_b.py | 13 ++--- tests/test_cycle7_stage_d_families.py | 5 +- 15 files changed, 82 insertions(+), 29 deletions(-) create mode 100644 evidence/cycle7-stage-d-validation-880000-2026-08-25/decision.json create mode 100644 evidence/cycle7-stage-d-validation-880000-2026-08-25/density.json create mode 100644 evidence/cycle7-stage-d-validation-880000-2026-08-25/detector-compare.json create mode 100644 evidence/cycle7-stage-d-validation-880000-2026-08-25/geometry.json create mode 100644 evidence/cycle7-stage-d-validation-880000-2026-08-25/samples.json diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 204edb47..dd76732e 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -34,9 +34,9 @@ See `docs/cycle7/seed-ledger.md` and `fuckmark/cycle7/ledger.py`. | Exploratory development (Stage A) | `810000` | used; do not keep expanding rules against it | | Exploratory development / rule construction (Stage B1) | `860000` | used; do not keep expanding rules against it | | Exploratory development / rule construction (Stage C1) | `870000` | used; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage D1) | `890000` | active; topic frozen as `document structure` | +| Exploratory development / rule construction (Stage D1) | `890000` | used; do not keep expanding rules against it | | Validation development (Stage B3) | `820000` | used as Stage B3 disjoint validation; do not retune on it | -| Validation development (Stage C/D, reserved) | `880000` | unseen until a catalog freeze | +| Validation development (Stage D) | `880000` | used as Stage D disjoint validation of catalog v5; do not retune on it | | Confirmation reserved | `830000`, `840000`, `850000` | must not be inspected | Confirmation seeds were chosen as unused 10k blocks before any Cycle 7 detector look. @@ -103,7 +103,9 @@ Stage C1 on seed `870000` (topic frozen as `measurement protocol`) added clause- ## Stage D -Stage D1 on seed `890000` (topic frozen as `document structure`) added word-boundary newlines. Mean durable candidates: **38.0**. Collapse-surviving intact/root **0.164**. Detector: durable **0/4** after collapse; Cycle 6 spacing **3/4** after collapse. Overall: **`PROMISING_DEVELOPMENT`**. Seed `880000` was not inspected in D1. Details: `docs/cycle7/stage-d-decision.md`. +Stage D1 on seed `890000` (topic frozen as `document structure`) added word-boundary newlines. Mean durable candidates: **38.0**. Collapse-surviving intact/root **0.164**. Detector: durable **0/4** after collapse; Cycle 6 spacing **3/4** after collapse. + +Disjoint validation seed `880000` (topic frozen as `independent check`) replicated: mean **44.875**, collapsed intact/root **0.080**, durable **0/4** after collapse, Cycle 6 spacing **4/4** after collapse. Overall: **`PROMISING_DEVELOPMENT`**. Not formal confirmation. Details: `docs/cycle7/stage-d-decision.md`. Not claimed: diff --git a/docs/cycle7/literature.md b/docs/cycle7/literature.md index e3df2978..62043488 100644 --- a/docs/cycle7/literature.md +++ b/docs/cycle7/literature.md @@ -53,5 +53,5 @@ EXTERNAL-VALIDATION-ONLY. Cambridge English Grammar Today: `all`, `both`, and `h HYPOTHESIS. Clause commas are much more common than sentence terminals on ordinary prose, so Family 10 should raise layout-channel density relative to Family 4 alone. Stage C on seed `870000` measured mean 1.50 clause sites and did not escape the four-site regime. VERIFIED on that seed only. -HYPOTHESIS. Replacing ordinary word-boundary U+0020 with LF is the collapse-resistant analogue of Cycle 6 general word spacing. `whitespace-collapse-v1` preserves LF, so the token change should remain after that sanitizer. Whether 14 such wraps destroy enough GPT-2 n-gram windows on TinyDev 64-token text is a Stage D measurement, not a theorem. HYPOTHESIS: a wrap/reflow sanitizer would erase it. +HYPOTHESIS. Replacing ordinary word-boundary U+0020 with LF is the collapse-resistant analogue of Cycle 6 general word spacing. `whitespace-collapse-v1` preserves LF, so the token change remains after that sanitizer. VERIFIED on seeds `890000` and `880000` under catalog v5: mean wrap-site density 33.375 and 37.875, collapsed intact/root 0.164 and 0.080, durable detections 0/4 after collapse on both n=4 snapshots, Cycle 6 spacing 3/4 and 4/4 after collapse. That is development evidence, not 192-row confirmation. HYPOTHESIS: a wrap/reflow sanitizer would erase it. diff --git a/docs/cycle7/live-state-audit.md b/docs/cycle7/live-state-audit.md index ca7d7e9b..4e143b41 100644 --- a/docs/cycle7/live-state-audit.md +++ b/docs/cycle7/live-state-audit.md @@ -76,5 +76,5 @@ Open PR after the merge: [#97](https://github.com/byte271/FuckMark/pull/97) (`cu Stage C1 on seed `870000` was `INSUFFICIENT_EVIDENCE` (mean durable candidates 4.75; durable detector 3/4 after collapse). Seed `880000` was not inspected. -Stage D continues on branch `cursor/cycle7-stage-d-wrap-3fb1` from this `main`, with exploratory seed `890000` and topic `document structure` frozen before generation. +Stage D continues on branch `cursor/cycle7-stage-d-wrap-3fb1` from this `main`, with exploratory seed `890000` and topic `document structure` frozen before generation. Disjoint validation seed `880000` / topic `independent check` was scored after catalog v5 was frozen and is now used. Confirmation seeds `830000` / `840000` / `850000` were not inspected. diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index 9fbec0cf..22e0714b 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -20,9 +20,9 @@ Seeds were assigned **before** Cycle 7 detector scoring. Seed `860000` and topic | Exploratory development (Stage A) | 810000 | yes, development only; do not keep expanding rules against it | | Exploratory development / rule construction (Stage B1) | 860000 | used; do not keep expanding rules against it | | Exploratory development / rule construction (Stage C1) | 870000 | used; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage D1) | 890000 | yes, development only; frozen topic `document structure` | +| Exploratory development / rule construction (Stage D1) | 890000 | used; do not keep expanding rules against it | | Validation development (Stage B3) | 820000 | used as Stage B3 disjoint validation; do not retune on it | -| Validation development (Stage C/D, reserved) | 880000 | **not yet inspected**; reserved until a catalog freeze | +| Validation development (Stage C/D) | 880000 | used as Stage D disjoint validation of catalog v5; do not retune on it | | Confirmation reserved | 830000, 840000, 850000 | **no** until a later frozen confirmation protocol | Do not promote 810000, 820000, 860000, 870000, 880000, or 890000 into confirmation after seeing scores. @@ -35,5 +35,7 @@ Validation generation used 820000 with topic `held-out evaluation`. That topic w Stage C1 generation used 870000 with topic `measurement protocol`. That seed is now used. Do not retune catalog v4 on 870000. -Stage D1 generation uses 890000 with topic `document structure`. Rule-construction generation must call `assert_rule_construction_seed(890000)`. Seed `880000` stays unseen until a catalog freeze. +Stage D1 generation used 890000 with topic `document structure`. Rule-construction generation must call `assert_rule_construction_seed(890000)`. Do not retune catalog v5 on 890000. + +Stage D validation used 880000 with topic `independent check`. Do not retune catalog v5 on 880000. A later revised mechanism must reserve a new unused validation seed. diff --git a/docs/cycle7/stage-d-decision.md b/docs/cycle7/stage-d-decision.md index c1edeacd..b802ed69 100644 --- a/docs/cycle7/stage-d-decision.md +++ b/docs/cycle7/stage-d-decision.md @@ -2,7 +2,9 @@ **Decision: `PROMISING_DEVELOPMENT`** -This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Catalog v5 is frozen against further rule expansion on seed `890000`. Seed `880000` is the next unused validation split. +This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Catalog v5 was frozen before disjoint validation. Seed `880000` was then used as validation and must not be used for retuning. + +Catalog: `cycle7-durable-rule-catalog-v5`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. Catalog: `cycle7-durable-rule-catalog-v5`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. @@ -85,10 +87,46 @@ The Stage C hypothesis that local semantically conservative English surface equi HYPOTHESIS unchanged: a wrap/reflow sanitizer would erase Family 12. That sanitizer is not in the frozen Cycle 7 suite. -Do not retune v5 on `890000`. Do not inspect `830000` / `840000` / `850000`. Do not open Cycle 7 formal confirmation. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. It was not applied after seeing 890000. +Do not retune v5 on `890000`. Do not retune v5 on `880000`. Do not inspect `830000` / `840000` / `850000`. Do not open Cycle 7 formal confirmation. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. It was not applied after seeing 890000 or 880000. + +## Stage D validation (seed 880000) + +Seed `880000` and topic `independent check` were frozen before any Stage C/D validation generation. Catalog v5 was not changed after D1. This is disjoint validation, not confirmation. + +Artifact hashes: + +- samples `cce0b9f855705c99cb213ea07fabbde88fe43169faa60095d14068e15e02c835` +- density `89718012053600552267eedb92ce7f7d6534600b275d9d0a3b2145df8b9f1fd2` +- geometry `fa5653eb8be603c31070190b8ecc0794bc3050359d0bf94570aaba960900c6c9` +- detector-compare `8227a50442452d52da99cb79c75097054ba526e39535cc97904680373074cb61` + +Density (VERIFIED): mean durable candidates **44.875**, word-boundary **37.875**, min 34 / max 58 / zero-candidate rows 0/8. + +Geometry (VERIFIED): durable collapsed intact / root **0.080** (mean selected 14.0, budget exhausted). Cycle 6 spacing collapsed intact / root **0.938**. Combined after collapse **0.390**, still worse than durable-only. + +Detector (VERIFIED, n=4 watermarked, all 4 pristine-detected): + +| Arm | Pristine WM | Raw WM | Raw UW | ws_collapse WM | ws_collapse UW | +| --- | --- | --- | --- | --- | --- | +| Cycle 6 spacing B14 | 4/4 | **0/4** | 0/4 | **4/4** | 0/4 | +| Cycle 7 durable v5 | 4/4 | **0/4** | 0/4 | **0/4** | 0/4 | +| Combined | 4/4 | **0/4** | 0/4 | **2/4** | 0/4 | + +NFKC/Cf matched raw. `ws_collapse_nfkc_cf_strip` matched `ws_collapse`. Unwatermarked transformed controls stayed at 0 detections. + +Unlike Stage B, the D1 detector reduction **replicated** on the held-out seed. Both snapshots are still n=4. Label: VERIFIED replication of the D1 density/geometry/detector pattern on seed `880000`; not a 192-row confirmation. + +## Overall Stage D conclusion + +**`PROMISING_DEVELOPMENT`** as a Cycle 6 whitespace-collapse replacement candidate. + +Replicated on two ledger-disjoint TinyDev 64-token GPT-2 snapshots (`890000`, `880000`): word-boundary newlines supply tens of natural sites; 14 budgeted wraps drop collapse-surviving intact root windows to ~8–16%; Cycle 6 spacing still returns to 3/4 or 4/4 detections after `whitespace-collapse-v1`; durable v5 stays at 0/4 after the same collapse; transformed unwatermarked controls stay clean; combined-after-collapse remains worse than durable-only. + +Remaining bounds: layout/reflow sanitizer is not in the frozen suite (HYPOTHESIS: it would erase Family 12); n=4+4 is not formal confirmation; cover-greedy mixing with Cycle 6 spacing still hands collapse-undone slots back to the detector. ## Next -1. Keep catalog v5 frozen. Use seed `880000` / topic `independent check` as disjoint validation. Do not recycle `820000`. -2. If validation fails to replicate density, geometry, or detector reduction, overall Stage D is `INSUFFICIENT_EVIDENCE` and v5 is not a confirmation candidate. -3. If validation replicates, still do not open confirmation on n=4+4. Confirmation, if ever justified, uses reserved seeds `830000` / `840000` / `850000` under a frozen protocol. +1. Do not retune catalog v5 on `890000` or `880000`. +2. Do not inspect `830000` / `840000` / `850000` unless a later frozen confirmation protocol names them. +3. A later revised mechanism must reserve a new unused validation seed. Do not recycle `820000` or `880000`. +4. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. diff --git a/evidence/cycle7-stage-d-validation-880000-2026-08-25/decision.json b/evidence/cycle7-stage-d-validation-880000-2026-08-25/decision.json new file mode 100644 index 00000000..4da0d822 --- /dev/null +++ b/evidence/cycle7-stage-d-validation-880000-2026-08-25/decision.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-decision-v1","collapsed_intact_fraction_of_root":0.07982261640798226,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":44.875,"mean_format_candidate_count":3.625,"mean_nonlayout_candidate_count":3.375,"mean_word_boundary_candidate_count":37.875,"notes":"Stage D is development-only. Seeds 830000/840000/850000 were not inspected. Seed 880000 remains unused validation until a catalog freeze. Do not retune on 810000, 860000, 820000, or 870000.","reasons":["mean word-boundary newline candidate count is at least 8 per sample","mean durable candidate count escaped the Stage B/C four-site regime","most durable sites are word-boundary layout newlines rather than lexical substitutions","collapsed intact root windows dropped by at least half versus the source root","this is development evidence, not Cycle 7 formal confirmation"]} diff --git a/evidence/cycle7-stage-d-validation-880000-2026-08-25/density.json b/evidence/cycle7-stage-d-validation-880000-2026-08-25/density.json new file mode 100644 index 00000000..c3c95d7a --- /dev/null +++ b/evidence/cycle7-stage-d-validation-880000-2026-08-25/density.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-density-v1","artifact_hash":"89718012053600552267eedb92ce7f7d6534600b275d9d0a3b2145df8b9f1fd2","decision":{"algorithm_version":"cycle7-stage-d-decision-v1","collapsed_intact_fraction_of_root":null,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":44.875,"mean_format_candidate_count":3.625,"mean_nonlayout_candidate_count":3.375,"mean_word_boundary_candidate_count":37.875,"notes":"Stage D is development-only. Seeds 830000/840000/850000 were not inspected. Seed 880000 remains unused validation until a catalog freeze. Do not retune on 810000, 860000, 820000, or 870000.","reasons":["mean word-boundary newline candidate count is at least 8 per sample","mean durable candidate count escaped the Stage B/C four-site regime","most durable sites are word-boundary layout newlines rather than lexical substitutions","this is development evidence, not Cycle 7 formal confirmation"]},"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","rows":[{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":58,"candidates_per_64_tokens":66.2857,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":7,"contraction_candidate_count":3,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":2,"discourse_rule_ids":["lexical-discourse-drop-comma-instead","lexical-discourse-drop-comma-instead"],"format_candidate_count":5,"format_clause_candidate_count":2,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":3,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":48,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":5,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","lexical-discourse-drop-comma-instead","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-that-is-not-x","cycle7-word-boundary-newline","contract-is-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-are-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","lexical-discourse-drop-comma-instead","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","word_boundary_candidate_count":48,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":45,"candidates_per_64_tokens":58.7755,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":5,"contraction_candidate_count":1,"coord_comma_candidate_count":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-but"],"discourse_comma_candidate_count":1,"discourse_rule_ids":["lexical-discourse-drop-comma-in-fact"],"format_candidate_count":5,"format_clause_candidate_count":4,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":37,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":5,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-expand-its-a","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","word_boundary_candidate_count":36,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":34,"candidates_per_64_tokens":41.8462,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":3,"contraction_candidate_count":1,"coord_comma_candidate_count":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-and"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":3,"format_clause_candidate_count":2,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":29,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","word_boundary_candidate_count":29,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":41,"candidates_per_64_tokens":51.451,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":0,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":2,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":41,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","word_boundary_candidate_count":39,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":48,"candidates_per_64_tokens":62.6939,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":3,"contraction_candidate_count":1,"coord_comma_candidate_count":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-but"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":4,"format_clause_candidate_count":3,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":43,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","word_boundary_candidate_count":42,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":2,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":54,"candidates_per_64_tokens":67.7647,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":12,"contraction_candidate_count":2,"coord_comma_candidate_count":5,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-but","cycle7-syntax-coord-comma-drop-or","cycle7-syntax-coord-comma-drop-or","cycle7-syntax-coord-comma-drop-or","cycle7-syntax-coord-comma-drop-or"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":5,"format_clause_candidate_count":5,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":0,"format_sentence_rule_ids":[],"isolated_candidate_count":35,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-apostrophe-ascii-to-typographic","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","word_boundary_candidate_count":40,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":42,"candidates_per_64_tokens":57.1915,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":2,"contraction_candidate_count":0,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":1,"discourse_rule_ids":["lexical-discourse-drop-comma-in-fact"],"format_candidate_count":4,"format_clause_candidate_count":2,"format_clause_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"format_sentence_candidate_count":2,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":39,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":2,"prenominal_candidate_count":2,"prenominal_rule_ids":["lexical-prenominal-open-problem-solving","lexical-prenominal-open-problem-solving"],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","word_boundary_candidate_count":35,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":37,"candidates_per_64_tokens":50.383,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":2,"compound_rule_ids":["lexical-compound-open-step-by-step","lexical-compound-open-step-by-step"],"conflict_pair_count":0,"contraction_candidate_count":0,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":1,"format_clause_candidate_count":0,"format_clause_rule_ids":[],"format_rule_ids":["cycle7-format-sentence-period-newline"],"format_sentence_candidate_count":1,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":37,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quantifier_of_candidate_count":0,"quantifier_of_rule_ids":[],"quote_blocked_count":0,"rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","word_boundary_candidate_count":34,"word_boundary_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"]}],"seed_base":880000,"summary":{"max_candidate_count":58,"mean_candidate_count":44.875,"mean_complementizer_candidate_count":0.0,"mean_coord_comma_candidate_count":1.0,"mean_discourse_comma_candidate_count":0.5,"mean_format_candidate_count":3.625,"mean_format_clause_candidate_count":2.375,"mean_parenthetical_candidate_count":0.0,"mean_prenominal_candidate_count":0.25,"mean_quantifier_of_candidate_count":0.0,"mean_word_boundary_candidate_count":37.875,"min_candidate_count":34,"sample_count":8,"zero_candidate_rows":0}} diff --git a/evidence/cycle7-stage-d-validation-880000-2026-08-25/detector-compare.json b/evidence/cycle7-stage-d-validation-880000-2026-08-25/detector-compare.json new file mode 100644 index 00000000..591f30e8 --- /dev/null +++ b/evidence/cycle7-stage-d-validation-880000-2026-08-25/detector-compare.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-detector-compare-v1","artifact_hash":"8227a50442452d52da99cb79c75097054ba526e39535cc97904680373074cb61","budget":14,"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","geometry_rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":62,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"ed570dc59f4c7fae547e2089da1744eb134446d637325e5025c9862600729415","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-are-not","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":117,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":18,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":18,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"cd31b9bef922f1fb68fec9238427efb56f06a0de0afe2f3511ca7ff55bc5b68c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":92,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"6b1100f5f9c5a5443c838dff4622037902dd88645402ab3e38d89d0aea357996","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","contract-that-is-not-x","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":3}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":56,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":56,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"3d67a6db2f7aaec870b04bc78728f226ec7536b452c53713b369295aeaa3646c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-why","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-might","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"9368cd7fbb3569890f76d1a33c84ccce2751e74ebe5cf6e684abc05fdd8a7992","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":70,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","surface-space-after-might","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e5fbda8c47e2dab1ce2b938fdd4dc008536876bc204e8227dbe59b6dda87a54f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":8}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":57,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"4a9c2a0a025ea8377a4da33f5763354620009c902f3bb8668deb7330d38efec3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":13,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":90,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":32,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"7e4f2ae65c3c0d0d2be0545396e70b00e80110a2558203f4b15984cf5932a4b5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":11,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"4a64d62425c3d86dc84d571da76f6fe20ef19839274a9b190337992f1102759a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":17,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":8}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"ad0e0f19dd67561260439e430595f94684ed6a6d95e09160c2ed1cf4770ed2cc","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":89,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":31,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"c38db41492a46423bba3fcedf2d06198e9145b1b2606123b6a9a27fc3bf4df63","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-period","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":6},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":7,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":7,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"44339d0b1af522cf982a380a7096c09f450c9dd49024c86bc8ae4c744c4aaf48","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":7}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":51,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"a23ce9301e3f4276080ab4ba1e9ea05815b07818e310a062e6ac6c34a8336e05","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":13,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"5cf4fbf63165a406dec1e8ab40f27373ae49dc181f96ae2346d5e7c67811205f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":6},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":2,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"fb0ac6daeefa130b459aa42ea41640b9a8044d9fa745046f4bbb4932e5a24155","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":2}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":55,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"c05369d57bd2aa9eefa167e6079b4cf37f2363ba8d9af6fd61622ce1d810358b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":65,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":17,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"4dc763cf62a1fed92bcf79e22c098d8b8380a894eee93adbaecd31e4b0b42b75","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"a8beec1a5b51f7ed77c6e1cf7d5a8d4eb7f29f164f344b5c66ad2ce5b30de985","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":13,"measurement_hash":"adbe1f722c068e96b9e2b6fd7234f87528f06324136083c20bf1ad0cb059a8f1","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":91,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":30,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":30,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"14bb899cd457c97b48ce360f093c3e249edbb5b49ccfc67c4168763e92289a56","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":72,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":9,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1b2ef71944be36475901972b82ed10dc2409cf5ebe883ce514a08a2163794de3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":3}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":38,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"7415f3acfde1f327ff1d60114ada0f1f04ea215265974fec80e6b8f185e55a21","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":38,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":83,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":12,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":19,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"8d118c55278388f162295c152c99d0fc0d6119a2809753a2e0339067aaeb84b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-compound-open-step-by-step","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":8,"tuple_leak_window_count":2},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":37,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"a22780dec4f1a3611d4efc8fee2dd60833334938f04c0ea2d882917403435dfb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":23,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":2}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked"}],"model":"openai-community/gpt2","model_revision":"607a30d783dfa663caf39e06633721c8d4cfcd7e","samples":[{"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","seed":880000,"text":"\n\nThere are no formal examples of the use of standardization in scientific work. Instead, use a set of principles that is not directly relevant to the issue at hand. These principles may be used to assess the performance of an object of study but are not necessarily relevant to the question at hand. Instead, use standard","text_sha256":"ffd1d39b39d48c802859e53262ad85c29cb739fb291e674d687b6aae4e7e5819"},{"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","seed":880000,"text":"\n\nThis is why you should never ask for this. It's a bit more difficult, but not impossible, than \"It might help us to write a test.\"\n\nIn fact, it is actually quite difficult to find out the answer to this question.\n\nIn fact, it is quite easy to find","text_sha256":"070f6cd36db4d2312ade90a8ae7c929730308e9a2b3e788bc47b28771fa67ccc"},{"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","seed":880032,"text":" Provide a simple way to check for each validation failure, using a \"check-in\" technique. A validation check is a function that checks whether a problem is in a certain order, and then returns a check-in.\n\nWe do not want to create a complex database that has a few columns and many errors","text_sha256":"7a0c16a9173c64bdd494ca0212863bf3878d7f0e68af55c415caf339f2cade5c"},{"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","seed":880032,"text":" You must also define how you want to run your experiments in a \"validation check\".\n\nStep 2: Verify that the test has been performed correctly\n\nCheck your results.\n\nCreate a check in the test for an error you see in the main program. In that check, you want to verify whether","text_sha256":"c6e47792b9973562b1d548bf9e9a59f5c64f38a84e90be0669185d0c91307e37"},{"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","seed":880064,"text":"\n\nThe more the conversation progresses, the less the questions are asked.\n\nAsk the person with whom you are sitting if he has noticed the situation. If he has, tell him that he has.\n\nWrite your questions in an easy to read language, but keep the answers short and straightforward.\n\n","text_sha256":"8dac1e567fa68194a73c211ac6bbf2cec670b80143c12200fc54653cd8279d8a"},{"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","seed":880064,"text":"\n\nThis is a great tool for the business or organization you plan to work for, but it should be used for the person to whom you are communicating your needs.\n\n\"Don't let the person who's going to your bank, or your spouse, or your partner, or your children, or your child","text_sha256":"d608d09b0c3cb3ab3164a842406798a80bd574004fe287e1a42af4a988094517"},{"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","seed":880096,"text":" Use a series of questions to learn about the experiment. This is the most natural way to develop your own problem-solving skills. In fact, using these tools helps you gain many useful skills, including:\n\nBuilding a problem-solving knowledge base\n\nLearning how to solve problems efficiently\n\nLearning to","text_sha256":"82084838f45d609bf890bc8888e1eeeeea9496239f2fdb68a214a3ab26d286dc"},{"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","seed":880096,"text":" Use a series of three-step steps and use a series of step-by-step instructions to apply independent check to a set of stimuli. Use a series of three-step steps and use a series of step-by-step instructions to apply independent check to an set of stimuli.\n\nPractice the three","text_sha256":"9f41b56ae6f2d63907af39ccb127007b31b358b75894b9f4ea0fd01d9b7f925b"}],"sanitizer_ids":["raw","nfkc","cf_strip","nfkc_cf_strip","ws_collapse","ws_collapse_nfkc_cf_strip"],"scored_rows":[{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":62,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"ed570dc59f4c7fae547e2089da1744eb134446d637325e5025c9862600729415","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-are-not","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4815956171888375,"sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5284792368125701,"text_hash":"e3e46266c1a5eb379275a9fa1b14754571dfcdaf76fb5a717eeb1a2c07f7f4c6"},"nfkc":{"detected":false,"score":0.5284792368125701,"text_hash":"e3e46266c1a5eb379275a9fa1b14754571dfcdaf76fb5a717eeb1a2c07f7f4c6"},"nfkc_cf_strip":{"detected":false,"score":0.5284792368125701,"text_hash":"e3e46266c1a5eb379275a9fa1b14754571dfcdaf76fb5a717eeb1a2c07f7f4c6"},"raw":{"detected":false,"score":0.5284792368125701,"text_hash":"e3e46266c1a5eb379275a9fa1b14754571dfcdaf76fb5a717eeb1a2c07f7f4c6"},"ws_collapse":{"detected":false,"score":0.4946070878274268,"text_hash":"e9fb85793117b951679fa76b15738af42bdd790a6a022b7a3c5deaf66902db56"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4946070878274268,"text_hash":"e9fb85793117b951679fa76b15738af42bdd790a6a022b7a3c5deaf66902db56"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"6b1100f5f9c5a5443c838dff4622037902dd88645402ab3e38d89d0aea357996","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","contract-that-is-not-x","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":3},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4815956171888375,"sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"},"nfkc":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"},"nfkc_cf_strip":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"},"raw":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"},"ws_collapse":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4928393524283935,"text_hash":"d93c16eb781802724f2db8f129849560a30ed6b7e5db9e348d72d7a640f2d942"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":117,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":18,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":18,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"cd31b9bef922f1fb68fec9238427efb56f06a0de0afe2f3511ca7ff55bc5b68c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":92,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":7},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4815956171888375,"sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.45630967206309675,"text_hash":"02a11d7a0e31239e7054242564ba0ad0b18d9b65d6dc561020b046b1839149d5"},"nfkc":{"detected":false,"score":0.45630967206309675,"text_hash":"02a11d7a0e31239e7054242564ba0ad0b18d9b65d6dc561020b046b1839149d5"},"nfkc_cf_strip":{"detected":false,"score":0.45630967206309675,"text_hash":"02a11d7a0e31239e7054242564ba0ad0b18d9b65d6dc561020b046b1839149d5"},"raw":{"detected":false,"score":0.45630967206309675,"text_hash":"02a11d7a0e31239e7054242564ba0ad0b18d9b65d6dc561020b046b1839149d5"},"ws_collapse":{"detected":false,"score":0.4765074992347719,"text_hash":"52e244e0b723d45101da375f4aa540a5cad8f2e35328712515ca141e8ffb871b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4765074992347719,"text_hash":"52e244e0b723d45101da375f4aa540a5cad8f2e35328712515ca141e8ffb871b"}}},{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":56,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":56,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"3d67a6db2f7aaec870b04bc78728f226ec7536b452c53713b369295aeaa3646c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-why","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-might","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6675234487734487,"sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.529215768799102,"text_hash":"7a7bdf644db54e9d256618bd267cd43ae756a6478f43111cce502b22c766a93f"},"nfkc":{"detected":false,"score":0.529215768799102,"text_hash":"7a7bdf644db54e9d256618bd267cd43ae756a6478f43111cce502b22c766a93f"},"nfkc_cf_strip":{"detected":false,"score":0.529215768799102,"text_hash":"7a7bdf644db54e9d256618bd267cd43ae756a6478f43111cce502b22c766a93f"},"raw":{"detected":false,"score":0.529215768799102,"text_hash":"7a7bdf644db54e9d256618bd267cd43ae756a6478f43111cce502b22c766a93f"},"ws_collapse":{"detected":true,"score":0.6675234487734487,"text_hash":"070f6cd36db4d2312ade90a8ae7c929730308e9a2b3e788bc47b28771fa67ccc"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6675234487734487,"text_hash":"070f6cd36db4d2312ade90a8ae7c929730308e9a2b3e788bc47b28771fa67ccc"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e5fbda8c47e2dab1ce2b938fdd4dc008536876bc204e8227dbe59b6dda87a54f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":8},"label":"watermarked","pristine_detected":true,"pristine_score":0.6675234487734487,"sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"},"nfkc":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"},"nfkc_cf_strip":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"},"raw":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"},"ws_collapse":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5000721500721501,"text_hash":"cfd7c6d3abdf576680a740559df67abbe2855e29b741208de178b0d94f742a8a"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"9368cd7fbb3569890f76d1a33c84ccce2751e74ebe5cf6e684abc05fdd8a7992","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":70,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","surface-space-after-might","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":7},"label":"watermarked","pristine_detected":true,"pristine_score":0.6675234487734487,"sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5225468975468974,"text_hash":"91877ca5e6f79c2074a1dd63cc3f13abf3e9cbbfb24901ac6e3d18d6c3556c2b"},"nfkc":{"detected":false,"score":0.5225468975468974,"text_hash":"91877ca5e6f79c2074a1dd63cc3f13abf3e9cbbfb24901ac6e3d18d6c3556c2b"},"nfkc_cf_strip":{"detected":false,"score":0.5225468975468974,"text_hash":"91877ca5e6f79c2074a1dd63cc3f13abf3e9cbbfb24901ac6e3d18d6c3556c2b"},"raw":{"detected":false,"score":0.5225468975468974,"text_hash":"91877ca5e6f79c2074a1dd63cc3f13abf3e9cbbfb24901ac6e3d18d6c3556c2b"},"ws_collapse":{"detected":true,"score":0.557800224466891,"text_hash":"f7127fbe0908c3306d3b236dddffc863e532df78f4d90fbedd29bbb3df78db0d"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.557800224466891,"text_hash":"f7127fbe0908c3306d3b236dddffc863e532df78f4d90fbedd29bbb3df78db0d"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":57,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"4a9c2a0a025ea8377a4da33f5763354620009c902f3bb8668deb7330d38efec3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":13,"tuple_leak_window_count":13},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5102272727272728,"sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5308565103085651,"text_hash":"6309376142958b0e395bf64bf6bb3528e81a6d538f22f676c3433216edc8351e"},"nfkc":{"detected":false,"score":0.5308565103085651,"text_hash":"6309376142958b0e395bf64bf6bb3528e81a6d538f22f676c3433216edc8351e"},"nfkc_cf_strip":{"detected":false,"score":0.5308565103085651,"text_hash":"6309376142958b0e395bf64bf6bb3528e81a6d538f22f676c3433216edc8351e"},"raw":{"detected":false,"score":0.5308565103085651,"text_hash":"6309376142958b0e395bf64bf6bb3528e81a6d538f22f676c3433216edc8351e"},"ws_collapse":{"detected":false,"score":0.499537037037037,"text_hash":"2f1d0129413e02fe92f21c161d7a3fe8a2af3ab7ccc5c1005ffe2aa1c22512a5"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.499537037037037,"text_hash":"2f1d0129413e02fe92f21c161d7a3fe8a2af3ab7ccc5c1005ffe2aa1c22512a5"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"4a64d62425c3d86dc84d571da76f6fe20ef19839274a9b190337992f1102759a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":17,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5102272727272728,"sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"},"nfkc":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"},"nfkc_cf_strip":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"},"raw":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"},"ws_collapse":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49539919745399197,"text_hash":"fa947eea663989454e28c7200b637ce13ec76e376eea22aa1162e765b21e3cd7"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":90,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":32,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"7e4f2ae65c3c0d0d2be0545396e70b00e80110a2558203f4b15984cf5932a4b5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":11,"tuple_leak_window_count":12},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5102272727272728,"sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5068999857732253,"text_hash":"f0e7ea8750671387046231e2222bce4a66bf58303f7a3e95f2c4464a85c065b9"},"nfkc":{"detected":false,"score":0.5068999857732253,"text_hash":"f0e7ea8750671387046231e2222bce4a66bf58303f7a3e95f2c4464a85c065b9"},"nfkc_cf_strip":{"detected":false,"score":0.5068999857732253,"text_hash":"f0e7ea8750671387046231e2222bce4a66bf58303f7a3e95f2c4464a85c065b9"},"raw":{"detected":false,"score":0.5068999857732253,"text_hash":"f0e7ea8750671387046231e2222bce4a66bf58303f7a3e95f2c4464a85c065b9"},"ws_collapse":{"detected":false,"score":0.5047298380631714,"text_hash":"cea4cd979c503595338643bddc708fd315417685fd4542247a4064eeb80ee266"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5047298380631714,"text_hash":"cea4cd979c503595338643bddc708fd315417685fd4542247a4064eeb80ee266"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"ad0e0f19dd67561260439e430595f94684ed6a6d95e09160c2ed1cf4770ed2cc","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.6602693602693602,"sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5282620727826207,"text_hash":"119312edd9c8a491b603a6785bf5a0f04e179323c9041a6ceb39fc2c05cee1e3"},"nfkc":{"detected":false,"score":0.5282620727826207,"text_hash":"119312edd9c8a491b603a6785bf5a0f04e179323c9041a6ceb39fc2c05cee1e3"},"nfkc_cf_strip":{"detected":false,"score":0.5282620727826207,"text_hash":"119312edd9c8a491b603a6785bf5a0f04e179323c9041a6ceb39fc2c05cee1e3"},"raw":{"detected":false,"score":0.5282620727826207,"text_hash":"119312edd9c8a491b603a6785bf5a0f04e179323c9041a6ceb39fc2c05cee1e3"},"ws_collapse":{"detected":true,"score":0.6602693602693602,"text_hash":"c6e47792b9973562b1d548bf9e9a59f5c64f38a84e90be0669185d0c91307e37"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6602693602693602,"text_hash":"c6e47792b9973562b1d548bf9e9a59f5c64f38a84e90be0669185d0c91307e37"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":7,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":7,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"44339d0b1af522cf982a380a7096c09f450c9dd49024c86bc8ae4c744c4aaf48","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":7},"label":"watermarked","pristine_detected":true,"pristine_score":0.6602693602693602,"sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"},"nfkc":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"},"nfkc_cf_strip":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"},"raw":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"},"ws_collapse":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5200691121743753,"text_hash":"d53181e38d94b4b92af07ce67180789f8c2c799382200246eca83a8f3c7c5ea9"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":89,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":31,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"c38db41492a46423bba3fcedf2d06198e9145b1b2606123b6a9a27fc3bf4df63","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-period","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":6},"label":"watermarked","pristine_detected":true,"pristine_score":0.6602693602693602,"sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5218741468741468,"text_hash":"f2b72e8c269e6d36c3db93ad401cb292f84c2a3566fca7e28428e4f327c41948"},"nfkc":{"detected":false,"score":0.5218741468741468,"text_hash":"f2b72e8c269e6d36c3db93ad401cb292f84c2a3566fca7e28428e4f327c41948"},"nfkc_cf_strip":{"detected":false,"score":0.5218741468741468,"text_hash":"f2b72e8c269e6d36c3db93ad401cb292f84c2a3566fca7e28428e4f327c41948"},"raw":{"detected":false,"score":0.5218741468741468,"text_hash":"f2b72e8c269e6d36c3db93ad401cb292f84c2a3566fca7e28428e4f327c41948"},"ws_collapse":{"detected":true,"score":0.5863485602291573,"text_hash":"e7c1bae371ddb0b825903deeda324cfc71b7f155766a774a582105ce36f5e55b"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5863485602291573,"text_hash":"e7c1bae371ddb0b825903deeda324cfc71b7f155766a774a582105ce36f5e55b"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":51,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"a23ce9301e3f4276080ab4ba1e9ea05815b07818e310a062e6ac6c34a8336e05","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5093733949666153,"sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5004910213243546,"text_hash":"48ac61168bc5bd00a0e3015a76a57bf04ba653214f3a25bc310f8182b4668609"},"nfkc":{"detected":false,"score":0.5004910213243546,"text_hash":"48ac61168bc5bd00a0e3015a76a57bf04ba653214f3a25bc310f8182b4668609"},"nfkc_cf_strip":{"detected":false,"score":0.5004910213243546,"text_hash":"48ac61168bc5bd00a0e3015a76a57bf04ba653214f3a25bc310f8182b4668609"},"raw":{"detected":false,"score":0.5004910213243546,"text_hash":"48ac61168bc5bd00a0e3015a76a57bf04ba653214f3a25bc310f8182b4668609"},"ws_collapse":{"detected":false,"score":0.5109142270159219,"text_hash":"112e7be45809db967cb386f99bbcf23e4e9c231d7a0aaa4c5c03c4fab0722c83"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5109142270159219,"text_hash":"112e7be45809db967cb386f99bbcf23e4e9c231d7a0aaa4c5c03c4fab0722c83"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":2,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"fb0ac6daeefa130b459aa42ea41640b9a8044d9fa745046f4bbb4932e5a24155","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":2},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5093733949666153,"sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"},"nfkc":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"},"nfkc_cf_strip":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"},"raw":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"},"ws_collapse":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.520026655443322,"text_hash":"6d82fa646f05e9afe763101128cbbb2b3029cc8f769ad03dec72b4f629648308"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":13,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"5cf4fbf63165a406dec1e8ab40f27373ae49dc181f96ae2346d5e7c67811205f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":6},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5093733949666153,"sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5046592687437759,"text_hash":"5c14d8305339693c2c6bb8bdf18fd6888fd91b47d63d40f0ab60d0345437824e"},"nfkc":{"detected":false,"score":0.5046592687437759,"text_hash":"5c14d8305339693c2c6bb8bdf18fd6888fd91b47d63d40f0ab60d0345437824e"},"nfkc_cf_strip":{"detected":false,"score":0.5046592687437759,"text_hash":"5c14d8305339693c2c6bb8bdf18fd6888fd91b47d63d40f0ab60d0345437824e"},"raw":{"detected":false,"score":0.5046592687437759,"text_hash":"5c14d8305339693c2c6bb8bdf18fd6888fd91b47d63d40f0ab60d0345437824e"},"ws_collapse":{"detected":false,"score":0.5068596411879994,"text_hash":"780b341fb5eca4e530f3c0b739aa295b996823d0a5a117d2560ddb7999dbf763"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5068596411879994,"text_hash":"780b341fb5eca4e530f3c0b739aa295b996823d0a5a117d2560ddb7999dbf763"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":55,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"c05369d57bd2aa9eefa167e6079b4cf37f2363ba8d9af6fd61622ce1d810358b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":13},"label":"watermarked","pristine_detected":true,"pristine_score":0.5915404040404041,"sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4928154787309717,"text_hash":"e30272266d004d131139d622b2e2f579d4c6dbd48ab984ef842d73ecb16a349e"},"nfkc":{"detected":false,"score":0.4928154787309717,"text_hash":"e30272266d004d131139d622b2e2f579d4c6dbd48ab984ef842d73ecb16a349e"},"nfkc_cf_strip":{"detected":false,"score":0.4928154787309717,"text_hash":"e30272266d004d131139d622b2e2f579d4c6dbd48ab984ef842d73ecb16a349e"},"raw":{"detected":false,"score":0.4928154787309717,"text_hash":"e30272266d004d131139d622b2e2f579d4c6dbd48ab984ef842d73ecb16a349e"},"ws_collapse":{"detected":true,"score":0.569023569023569,"text_hash":"d546e05af2c4d1a7af5af565b3ebb589d92da21f58d114ec20f8b046afb38570"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.569023569023569,"text_hash":"d546e05af2c4d1a7af5af565b3ebb589d92da21f58d114ec20f8b046afb38570"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"a8beec1a5b51f7ed77c6e1cf7d5a8d4eb7f29f164f344b5c66ad2ce5b30de985","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4},"label":"watermarked","pristine_detected":true,"pristine_score":0.5915404040404041,"sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"},"nfkc":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"},"nfkc_cf_strip":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"},"raw":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"},"ws_collapse":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5126639529624604,"text_hash":"3ada30d48c2ef92010840d4f4e11252fdc047bc53f6a6ed8180e9e8d56cc6103"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":65,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":17,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"4dc763cf62a1fed92bcf79e22c098d8b8380a894eee93adbaecd31e4b0b42b75","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4},"label":"watermarked","pristine_detected":true,"pristine_score":0.5915404040404041,"sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5007914970601538,"text_hash":"6fb2e1746505751dcb76d25a50ced8a29c5b4787c26e84d302e9d48e2128f7af"},"nfkc":{"detected":false,"score":0.5007914970601538,"text_hash":"6fb2e1746505751dcb76d25a50ced8a29c5b4787c26e84d302e9d48e2128f7af"},"nfkc_cf_strip":{"detected":false,"score":0.5007914970601538,"text_hash":"6fb2e1746505751dcb76d25a50ced8a29c5b4787c26e84d302e9d48e2128f7af"},"raw":{"detected":false,"score":0.5007914970601538,"text_hash":"6fb2e1746505751dcb76d25a50ced8a29c5b4787c26e84d302e9d48e2128f7af"},"ws_collapse":{"detected":false,"score":0.5258537758537758,"text_hash":"372bb4e7de9871bb1951918b840a47df576e5d16d08c40bfdeeb05d3bf2dd144"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5258537758537758,"text_hash":"372bb4e7de9871bb1951918b840a47df576e5d16d08c40bfdeeb05d3bf2dd144"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":13,"measurement_hash":"adbe1f722c068e96b9e2b6fd7234f87528f06324136083c20bf1ad0cb059a8f1","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":13},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5009844204759458,"sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48841151238411507,"text_hash":"5bfda44d2be04b3c8c88e8bdbb2598170ad2f2e8ae0a6bf50f271b0ab7763925"},"nfkc":{"detected":false,"score":0.48841151238411507,"text_hash":"5bfda44d2be04b3c8c88e8bdbb2598170ad2f2e8ae0a6bf50f271b0ab7763925"},"nfkc_cf_strip":{"detected":false,"score":0.48841151238411507,"text_hash":"5bfda44d2be04b3c8c88e8bdbb2598170ad2f2e8ae0a6bf50f271b0ab7763925"},"raw":{"detected":false,"score":0.48841151238411507,"text_hash":"5bfda44d2be04b3c8c88e8bdbb2598170ad2f2e8ae0a6bf50f271b0ab7763925"},"ws_collapse":{"detected":false,"score":0.5009844204759458,"text_hash":"82084838f45d609bf890bc8888e1eeeeea9496239f2fdb68a214a3ab26d286dc"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5009844204759458,"text_hash":"82084838f45d609bf890bc8888e1eeeeea9496239f2fdb68a214a3ab26d286dc"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1b2ef71944be36475901972b82ed10dc2409cf5ebe883ce514a08a2163794de3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":3},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5009844204759458,"sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"},"nfkc":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"},"nfkc_cf_strip":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"},"raw":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"},"ws_collapse":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49480519480519475,"text_hash":"3ec03c771c8c01ea3b7637dc20cdae3363c6fa22e925e2a3e07cc8391089caa9"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":91,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":30,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":30,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"14bb899cd457c97b48ce360f093c3e249edbb5b49ccfc67c4168763e92289a56","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":72,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":9,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5009844204759458,"sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5287659200702679,"text_hash":"148b7ca016325035dfe22d2aeff29e90f312e4e9513c0293fdec69fd589ac814"},"nfkc":{"detected":false,"score":0.5287659200702679,"text_hash":"148b7ca016325035dfe22d2aeff29e90f312e4e9513c0293fdec69fd589ac814"},"nfkc_cf_strip":{"detected":false,"score":0.5287659200702679,"text_hash":"148b7ca016325035dfe22d2aeff29e90f312e4e9513c0293fdec69fd589ac814"},"raw":{"detected":false,"score":0.5287659200702679,"text_hash":"148b7ca016325035dfe22d2aeff29e90f312e4e9513c0293fdec69fd589ac814"},"ws_collapse":{"detected":false,"score":0.5024010597781089,"text_hash":"9a3da196b4ea5e035d86f5e5d314a540b6abe083826dcaec67cac53e79385c56"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5024010597781089,"text_hash":"9a3da196b4ea5e035d86f5e5d314a540b6abe083826dcaec67cac53e79385c56"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":38,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"7415f3acfde1f327ff1d60114ada0f1f04ea215265974fec80e6b8f185e55a21","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":38,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"label":"watermarked","pristine_detected":true,"pristine_score":0.5875863902179691,"sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5249674160964484,"text_hash":"49564ba7cb4dc25b2afd7c7f4b7fd45a6b1b7e4e347a18ff3ed58639bac59b9b"},"nfkc":{"detected":false,"score":0.5249674160964484,"text_hash":"49564ba7cb4dc25b2afd7c7f4b7fd45a6b1b7e4e347a18ff3ed58639bac59b9b"},"nfkc_cf_strip":{"detected":false,"score":0.5249674160964484,"text_hash":"49564ba7cb4dc25b2afd7c7f4b7fd45a6b1b7e4e347a18ff3ed58639bac59b9b"},"raw":{"detected":false,"score":0.5249674160964484,"text_hash":"49564ba7cb4dc25b2afd7c7f4b7fd45a6b1b7e4e347a18ff3ed58639bac59b9b"},"ws_collapse":{"detected":true,"score":0.5875863902179691,"text_hash":"9f41b56ae6f2d63907af39ccb127007b31b358b75894b9f4ea0fd01d9b7f925b"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5875863902179691,"text_hash":"9f41b56ae6f2d63907af39ccb127007b31b358b75894b9f4ea0fd01d9b7f925b"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":37,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"a22780dec4f1a3611d4efc8fee2dd60833334938f04c0ea2d882917403435dfb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":23,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":2},"label":"watermarked","pristine_detected":true,"pristine_score":0.5875863902179691,"sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"},"nfkc":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"},"nfkc_cf_strip":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"},"raw":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"},"ws_collapse":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5295883361921098,"text_hash":"f1f54014d60e9ca8055c764a851d6efc28ad1c95bf2e7aae2963eaf109efbc7e"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":83,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":12,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":19,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"8d118c55278388f162295c152c99d0fc0d6119a2809753a2e0339067aaeb84b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-compound-open-step-by-step","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":8,"tuple_leak_window_count":2},"label":"watermarked","pristine_detected":true,"pristine_score":0.5875863902179691,"sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5284090909090909,"text_hash":"6a991b95d4d7b02e72dc25c7b50f102d705c1286489cb2aa477fa5a6bf55c690"},"nfkc":{"detected":false,"score":0.5284090909090909,"text_hash":"6a991b95d4d7b02e72dc25c7b50f102d705c1286489cb2aa477fa5a6bf55c690"},"nfkc_cf_strip":{"detected":false,"score":0.5284090909090909,"text_hash":"6a991b95d4d7b02e72dc25c7b50f102d705c1286489cb2aa477fa5a6bf55c690"},"raw":{"detected":false,"score":0.5284090909090909,"text_hash":"6a991b95d4d7b02e72dc25c7b50f102d705c1286489cb2aa477fa5a6bf55c690"},"ws_collapse":{"detected":false,"score":0.523709315375982,"text_hash":"5bfef37c746845a0acc27c180e0fa0ff702205fd1423551c0c01ea54f0acd7ab"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.523709315375982,"text_hash":"5bfef37c746845a0acc27c180e0fa0ff702205fd1423551c0c01ea54f0acd7ab"}}}],"secret_access_used_for_selection":false,"seed_base":880000,"stage":"D-validation","summaries":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","median_raw_watermarked_score":0.5282620727826207,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5188151841022857,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.529215768799102,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6211006920710868},"cycle7_combined":{"arm_id":"cycle7_combined","median_raw_watermarked_score":0.5225468975468974,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5184054080975722,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5284090909090909,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":2,"ws_collapse_watermarked_mean_score":0.5484279689814515},"cycle7_durable":{"arm_id":"cycle7_durable","median_raw_watermarked_score":0.5200691121743753,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5155983878502739,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5295883361921098,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":0,"ws_collapse_watermarked_mean_score":0.5155983878502739}},"threshold":0.5570987654320988,"topic":"independent check"} diff --git a/evidence/cycle7-stage-d-validation-880000-2026-08-25/geometry.json b/evidence/cycle7-stage-d-validation-880000-2026-08-25/geometry.json new file mode 100644 index 00000000..89f11595 --- /dev/null +++ b/evidence/cycle7-stage-d-validation-880000-2026-08-25/geometry.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-geometry-v1","arm_ids":["cycle6_spacing_b14","cycle7_durable","cycle7_combined"],"artifact_hash":"fa5653eb8be603c31070190b8ecc0794bc3050359d0bf94570aaba960900c6c9","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","durable_intact_means":{"collapsed_intact_fraction_of_root":0.07982261640798226,"mean_collapsed_intact_window_count":4.5,"mean_intact_window_count":4.5,"mean_root_window_count":56.375,"mean_selected_count":14.0},"rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":62,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"ed570dc59f4c7fae547e2089da1744eb134446d637325e5025c9862600729415","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-are-not","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":117,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":18,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":18,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"cd31b9bef922f1fb68fec9238427efb56f06a0de0afe2f3511ca7ff55bc5b68c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":92,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","surface-space-after-any-word","contract-that-is-not-x","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"6b1100f5f9c5a5443c838dff4622037902dd88645402ab3e38d89d0aea357996","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","contract-that-is-not-x","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-are-not","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":3}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":56,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":56,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"3d67a6db2f7aaec870b04bc78728f226ec7536b452c53713b369295aeaa3646c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-why","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-comma","surface-space-after-might","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":23,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":23,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"9368cd7fbb3569890f76d1a33c84ccce2751e74ebe5cf6e684abc05fdd8a7992","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":70,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","surface-space-after-might","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"e5fbda8c47e2dab1ce2b938fdd4dc008536876bc204e8227dbe59b6dda87a54f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":56,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-discourse-drop-comma-in-fact","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":8}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":57,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"4a9c2a0a025ea8377a4da33f5763354620009c902f3bb8668deb7330d38efec3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":39,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":13,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":90,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":32,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"7e4f2ae65c3c0d0d2be0545396e70b00e80110a2558203f4b15984cf5932a4b5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word","contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-many"],"token_delta":11,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":34,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":8,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":8,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"4a64d62425c3d86dc84d571da76f6fe20ef19839274a9b190337992f1102759a","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":17,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-and","cycle7-word-boundary-newline","contract-do-not","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":8}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":60,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":60,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":11,"measurement_hash":"ad0e0f19dd67561260439e430595f94684ed6a6d95e09160c2ed1cf4770ed2cc","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":34,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":89,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":31,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"c38db41492a46423bba3fcedf2d06198e9145b1b2606123b6a9a27fc3bf4df63","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-colon","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-period","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline"],"token_delta":15,"tuple_leak_window_count":6},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":7,"collapsed_token_delta":16,"collapsed_tuple_leak_window_count":7,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"44339d0b1af522cf982a380a7096c09f450c9dd49024c86bc8ae4c744c4aaf48","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":16,"tuple_leak_window_count":7}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":51,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":54,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":54,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"a23ce9301e3f4276080ab4ba1e9ea05815b07818e310a062e6ac6c34a8336e05","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":98,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":13,"collapsed_token_delta":8,"collapsed_tuple_leak_window_count":13,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"5cf4fbf63165a406dec1e8ab40f27373ae49dc181f96ae2346d5e7c67811205f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":75,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-comma","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-period","cycle7-word-boundary-newline","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":12,"tuple_leak_window_count":6},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":2,"collapsed_token_delta":13,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"fb0ac6daeefa130b459aa42ea41640b9a8044d9fa745046f4bbb4932e5a24155","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline"],"token_delta":13,"tuple_leak_window_count":2}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":55,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":13,"measurement_hash":"c05369d57bd2aa9eefa167e6079b4cf37f2363ba8d9af6fd61622ce1d810358b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":37,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","contract-you-are","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":107,"candidate_exhausted":false,"changed_token_positions":65,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":17,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":17,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"4dc763cf62a1fed92bcf79e22c098d8b8380a894eee93adbaecd31e4b0b42b75","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":73,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-great","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":4,"collapsed_token_delta":7,"collapsed_tuple_leak_window_count":4,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":4,"measurement_hash":"a8beec1a5b51f7ed77c6e1cf7d5a8d4eb7f29f164f344b5c66ad2ce5b30de985","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-but","cycle7-word-boundary-newline","cycle7-word-boundary-newline","contract-you-are","cycle7-word-boundary-newline","expand-do-not","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-word-boundary-newline","cycle7-syntax-coord-comma-drop-or","cycle7-format-clause-comma-newline"],"token_delta":7,"tuple_leak_window_count":4}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":59,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":59,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":13,"measurement_hash":"adbe1f722c068e96b9e2b6fd7234f87528f06324136083c20bf1ad0cb059a8f1","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":13},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":91,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":30,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":30,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"14bb899cd457c97b48ce360f093c3e249edbb5b49ccfc67c4168763e92289a56","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":72,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","surface-space-after-period","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-comma","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline"],"token_delta":9,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":3,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":3,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":3,"measurement_hash":"1b2ef71944be36475901972b82ed10dc2409cf5ebe883ce514a08a2163794de3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":59,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-sentence-period-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-format-clause-comma-newline","lexical-prenominal-open-problem-solving","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":3}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":38,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":6,"measurement_hash":"7415f3acfde1f327ff1d60114ada0f1f04ea215265974fec80e6b8f185e55a21","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":38,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":83,"candidate_exhausted":false,"changed_token_positions":69,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":12,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":19,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":2,"measurement_hash":"8d118c55278388f162295c152c99d0fc0d6119a2809753a2e0339067aaeb84b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":66,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","surface-space-after-any-word","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word","lexical-compound-open-step-by-step","surface-space-after-any-word","cycle7-word-boundary-newline","surface-space-after-any-word"],"token_delta":8,"tuple_leak_window_count":2},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":true,"candidate_count":37,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":1,"collapsed_token_delta":10,"collapsed_tuple_leak_window_count":2,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":1,"measurement_hash":"a22780dec4f1a3611d4efc8fee2dd60833334938f04c0ea2d882917403435dfb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":23,"root_window_count":38,"selected_count":14,"selected_rule_ids":["cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","lexical-compound-open-step-by-step","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline","cycle7-word-boundary-newline"],"token_delta":10,"tuple_leak_window_count":2}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked"}],"seed_base":880000} diff --git a/evidence/cycle7-stage-d-validation-880000-2026-08-25/samples.json b/evidence/cycle7-stage-d-validation-880000-2026-08-25/samples.json new file mode 100644 index 00000000..e6d8909d --- /dev/null +++ b/evidence/cycle7-stage-d-validation-880000-2026-08-25/samples.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-d-samples-v1","artifact_hash":"cce0b9f855705c99cb213ea07fabbde88fe43169faa60095d14068e15e02c835","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v5","samples":[{"domain":"general_explanatory","label":"unwatermarked","prompt":"Explain in plain English why independent check matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-d-validation-general_explanatory-unwatermarked","seed":880000,"text":"\n\nThere are no formal examples of the use of standardization in scientific work. Instead, use a set of principles that is not directly relevant to the issue at hand. These principles may be used to assess the performance of an object of study but are not necessarily relevant to the question at hand. Instead, use standard","text_sha256":"ffd1d39b39d48c802859e53262ad85c29cb739fb291e674d687b6aae4e7e5819"},{"domain":"general_explanatory","label":"watermarked","prompt":"Explain in plain English why independent check matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-d-validation-general_explanatory-watermarked","seed":880000,"text":"\n\nThis is why you should never ask for this. It's a bit more difficult, but not impossible, than \"It might help us to write a test.\"\n\nIn fact, it is actually quite difficult to find out the answer to this question.\n\nIn fact, it is quite easy to find","text_sha256":"070f6cd36db4d2312ade90a8ae7c929730308e9a2b3e788bc47b28771fa67ccc"},{"domain":"technical_explanation","label":"unwatermarked","prompt":"Give a technical explanation of independent check in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-d-validation-technical_explanation-unwatermarked","seed":880032,"text":" Provide a simple way to check for each validation failure, using a \"check-in\" technique. A validation check is a function that checks whether a problem is in a certain order, and then returns a check-in.\n\nWe do not want to create a complex database that has a few columns and many errors","text_sha256":"7a0c16a9173c64bdd494ca0212863bf3878d7f0e68af55c415caf339f2cade5c"},{"domain":"technical_explanation","label":"watermarked","prompt":"Give a technical explanation of independent check in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-d-validation-technical_explanation-watermarked","seed":880032,"text":" You must also define how you want to run your experiments in a \"validation check\".\n\nStep 2: Verify that the test has been performed correctly\n\nCheck your results.\n\nCreate a check in the test for an error you see in the main program. In that check, you want to verify whether","text_sha256":"c6e47792b9973562b1d548bf9e9a59f5c64f38a84e90be0669185d0c91307e37"},{"domain":"conversational_prose","label":"unwatermarked","prompt":"Answer a colleague who asks why independent check matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-d-validation-conversational_prose-unwatermarked","seed":880064,"text":"\n\nThe more the conversation progresses, the less the questions are asked.\n\nAsk the person with whom you are sitting if he has noticed the situation. If he has, tell him that he has.\n\nWrite your questions in an easy to read language, but keep the answers short and straightforward.\n\n","text_sha256":"8dac1e567fa68194a73c211ac6bbf2cec670b80143c12200fc54653cd8279d8a"},{"domain":"conversational_prose","label":"watermarked","prompt":"Answer a colleague who asks why independent check matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-d-validation-conversational_prose-watermarked","seed":880064,"text":"\n\nThis is a great tool for the business or organization you plan to work for, but it should be used for the person to whom you are communicating your needs.\n\n\"Don't let the person who's going to your bank, or your spouse, or your partner, or your children, or your child","text_sha256":"d608d09b0c3cb3ab3164a842406798a80bd574004fe287e1a42af4a988094517"},{"domain":"structured_instructional","label":"unwatermarked","prompt":"Write a short three-step instruction for applying independent check in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-d-validation-structured_instructional-unwatermarked","seed":880096,"text":" Use a series of questions to learn about the experiment. This is the most natural way to develop your own problem-solving skills. In fact, using these tools helps you gain many useful skills, including:\n\nBuilding a problem-solving knowledge base\n\nLearning how to solve problems efficiently\n\nLearning to","text_sha256":"82084838f45d609bf890bc8888e1eeeeea9496239f2fdb68a214a3ab26d286dc"},{"domain":"structured_instructional","label":"watermarked","prompt":"Write a short three-step instruction for applying independent check in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-d-validation-structured_instructional-watermarked","seed":880096,"text":" Use a series of three-step steps and use a series of step-by-step instructions to apply independent check to a set of stimuli. Use a series of three-step steps and use a series of step-by-step instructions to apply independent check to an set of stimuli.\n\nPractice the three","text_sha256":"9f41b56ae6f2d63907af39ccb127007b31b358b75894b9f4ea0fd01d9b7f925b"}],"seed_base":880000,"stage":"D-validation","topic":"independent check"} diff --git a/fuckmark/cycle7/ledger.py b/fuckmark/cycle7/ledger.py index 5a875a03..fc363305 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -29,13 +29,13 @@ CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE = 870_000 CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE = 890_000 CYCLE7_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000, 890_000) -CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000) -CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (890_000,) +CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000, 860_000, 870_000, 890_000) +CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = () CYCLE7_VALIDATION_SEED_BASE = 820_000 CYCLE7_STAGE_C_VALIDATION_SEED_BASE = 880_000 CYCLE7_VALIDATION_SEED_BASES = (820_000, 880_000) -CYCLE7_USED_VALIDATION_SEED_BASES = (820_000,) -CYCLE7_ACTIVE_VALIDATION_SEED_BASES = (880_000,) +CYCLE7_USED_VALIDATION_SEED_BASES = (820_000, 880_000) +CYCLE7_ACTIVE_VALIDATION_SEED_BASES = () CYCLE7_VALIDATION_TOPIC = "held-out evaluation" CYCLE7_STAGE_C_VALIDATION_TOPIC = "independent check" CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) @@ -91,7 +91,9 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Seed 880000 and topic 'independent check' were frozen before " "any Stage C validation generation or detector look. " "Seed 890000 and topic 'document structure' were frozen before " - "any Stage D generation or detector look." + "any Stage D generation or detector look. " + "Seed 880000 was used as Stage D disjoint validation after catalog v5 " + "was frozen; do not retune on it." ), "spent_corpus_rule": ( "Do not use 720000, 730000, 760000, 770000, or 780000 as " @@ -99,6 +101,7 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Do not keep expanding transform rules against 810000 or 860000. " "Do not retune on validation seed 820000. " "Do not retune on 870000. " + "Do not retune on 890000 or validation seed 880000. " "Do not inspect 830000, 840000, or 850000." ), } diff --git a/fuckmark/cycle7/stage_d.py b/fuckmark/cycle7/stage_d.py index de340d2f..abc42565 100644 --- a/fuckmark/cycle7/stage_d.py +++ b/fuckmark/cycle7/stage_d.py @@ -65,8 +65,7 @@ def classify_stage_d_density( "collapsed_intact_fraction_of_root": collapsed_fraction, "notes": ( "Stage D is development-only. Seeds 830000/840000/850000 were not inspected. " - "Seed 880000 remains unused validation until a catalog freeze. " - "Do not retune on 810000, 860000, 820000, or 870000." + "Do not retune on 810000, 860000, 820000, 870000, or 890000." ), } return payload diff --git a/tests/test_cycle7_ledger.py b/tests/test_cycle7_ledger.py index 0a23c305..feb01dfc 100644 --- a/tests/test_cycle7_ledger.py +++ b/tests/test_cycle7_ledger.py @@ -26,8 +26,8 @@ def test_spent_and_reserved_seeds_are_disjoint_and_documented() -> None: assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v4" assert CYCLE7_EXPLORATORY_SEED_BASE == 810000 assert CYCLE7_EXPLORATORY_SEED_BASES == (810000, 860000, 870000, 890000) - assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (890000,) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000, 890000) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == () assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_VALIDATION_SEED_BASE == 820000 assert CYCLE7_CONFIRMATION_RESERVED_SEED_BASES == (830000, 840000, 850000) diff --git a/tests/test_cycle7_stage_b.py b/tests/test_cycle7_stage_b.py index d2188edd..653d9bf3 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -43,8 +43,8 @@ def test_stage_b_catalog_and_ledger_identities() -> None: assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_STAGE_B1_TOPIC == "independent replication" assert CYCLE7_VALIDATION_TOPIC == "held-out evaluation" - assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (890000,) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000, 870000, 890000) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == () payload = cycle7_seed_ledger_payload() assert payload["stage_b1_exploratory_seed_base"] == 860000 assert payload["stage_b1_topic"] == "independent replication" @@ -53,12 +53,11 @@ def test_stage_b_catalog_and_ledger_identities() -> None: assert payload["stage_d1_exploratory_seed_base"] == 890000 assert payload["stage_d1_topic"] == "document structure" assert payload["validation_topic"] == "held-out evaluation" - assert payload["used_validation_development_seed_bases"] == [820000] - assert payload["active_validation_development_seed_bases"] == [880000] + assert payload["used_validation_development_seed_bases"] == [820000, 880000] + assert payload["active_validation_development_seed_bases"] == [] -def test_rule_construction_admits_890000_and_blocks_spent_or_reserved_seeds() -> None: - assert_rule_construction_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE) +def test_rule_construction_blocks_spent_used_or_reserved_seeds() -> None: assert_development_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) @@ -69,6 +68,8 @@ def test_rule_construction_admits_890000_and_blocks_spent_or_reserved_seeds() -> assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) with pytest.raises(ValueError, match="rule-construction"): assert_rule_construction_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE) + with pytest.raises(ValueError, match="rule-construction"): + assert_rule_construction_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE) with pytest.raises(ValueError, match="rule-construction"): assert_development_seed(CYCLE7_EXPLORATORY_SEED_BASE, role=CYCLE7_RULE_CONSTRUCTION_ROLE) with pytest.raises(ValueError, match="confirmation-reserved"): diff --git a/tests/test_cycle7_stage_d_families.py b/tests/test_cycle7_stage_d_families.py index c713c360..db105a66 100644 --- a/tests/test_cycle7_stage_d_families.py +++ b/tests/test_cycle7_stage_d_families.py @@ -7,6 +7,7 @@ ) from fuckmark.cycle7.fixtures import WORD_BOUNDARY_RICH, stage_d_fixture_samples from fuckmark.cycle7.ledger import ( + CYCLE7_EXPLORATORY_ROLE, CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_D1_TOPIC, CYCLE7_STAGE_C_VALIDATION_SEED_BASE, @@ -41,7 +42,9 @@ def test_stage_d_ledger_identities_are_frozen_before_inspection() -> None: assert CYCLE7_STAGE_D1_TOPIC == "document structure" assert CYCLE7_STAGE_C_VALIDATION_SEED_BASE == 880000 assert CYCLE7_STAGE_C_VALIDATION_TOPIC == "independent check" - assert_rule_construction_seed(890000) + with pytest.raises(ValueError, match="rule-construction"): + assert_rule_construction_seed(890000) + assert_development_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_C_VALIDATION_SEED_BASE, role=CYCLE7_VALIDATION_ROLE) From 293646066a67296e23e4ec629a00e4c4438e922c Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 26 Aug 2026 01:04:15 +0000 Subject: [PATCH 4/6] Permit Stage D1 sample replay after the rule-construction lock. Fresh generation still requires an active rule-construction seed. --samples-from rescoring uses exploratory-development admission so the frozen 890000 evidence can be replayed after catalog v5 is locked. Co-authored-by: Byte271 --- docs/cycle7/seed-ledger.md | 2 +- fuckmark/cycle7_stage_d_hf.py | 10 +++++++++- tests/test_cycle7_stage_d_families.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index 22e0714b..a0bf1fa1 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -35,7 +35,7 @@ Validation generation used 820000 with topic `held-out evaluation`. That topic w Stage C1 generation used 870000 with topic `measurement protocol`. That seed is now used. Do not retune catalog v4 on 870000. -Stage D1 generation used 890000 with topic `document structure`. Rule-construction generation must call `assert_rule_construction_seed(890000)`. Do not retune catalog v5 on 890000. +Stage D1 generation used 890000 with topic `document structure`. Fresh rule-construction generation must call `assert_rule_construction_seed(890000)` and is now locked. Replay of the frozen D1 evidence via `--samples-from` uses exploratory-development admission so 890000 can be rescored. Do not retune catalog v5 on 890000. Stage D validation used 880000 with topic `independent check`. Do not retune catalog v5 on 880000. A later revised mechanism must reserve a new unused validation seed. diff --git a/fuckmark/cycle7_stage_d_hf.py b/fuckmark/cycle7_stage_d_hf.py index a129341b..33b7e056 100644 --- a/fuckmark/cycle7_stage_d_hf.py +++ b/fuckmark/cycle7_stage_d_hf.py @@ -7,6 +7,7 @@ from .config import canonical_json_text from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION from .cycle7.ledger import ( + CYCLE7_EXPLORATORY_ROLE, CYCLE7_STAGE_C_VALIDATION_SEED_BASE, CYCLE7_STAGE_C_VALIDATION_TOPIC, CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, @@ -25,6 +26,13 @@ CYCLE7_STAGE_D_DETECTOR_VERSION = "cycle7-stage-d-detector-compare-v1" +def admit_stage_d1_seed(seed_base: int, *, samples_from: Path | None) -> None: + if samples_from is None: + assert_rule_construction_seed(seed_base) + return + assert_development_seed(seed_base, role=CYCLE7_EXPLORATORY_ROLE) + + def run_stage_d1( *, device: str = "cpu", @@ -33,7 +41,7 @@ def run_stage_d1( ) -> dict[str, object]: seed_base = CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE topic = CYCLE7_STAGE_D1_TOPIC - assert_rule_construction_seed(seed_base) + admit_stage_d1_seed(seed_base, samples_from=samples_from) backend, tokenizer, adapter, identity_hash, eos = _adapter_and_tokenizer(device) if samples_from is not None: previous = json.loads(samples_from.read_text(encoding="utf-8")) diff --git a/tests/test_cycle7_stage_d_families.py b/tests/test_cycle7_stage_d_families.py index db105a66..18321322 100644 --- a/tests/test_cycle7_stage_d_families.py +++ b/tests/test_cycle7_stage_d_families.py @@ -1,3 +1,5 @@ +from pathlib import Path + import pytest from fuckmark.cycle7.density import durable_density_row, durable_density_table @@ -20,6 +22,7 @@ from fuckmark.cycle7.stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows from fuckmark.cycle7.stage_d import classify_stage_d_density, density_artifact_stage_d from fuckmark.cycle7.whitespace_collapse import collapse_horizontal_ascii_whitespace, sanitize_cycle7_variant +from fuckmark.cycle7_stage_d_hf import admit_stage_d1_seed from fuckmark.transforms.format_rules import FormatConstruction from fuckmark.transforms.hard_invariants import validate_hard_invariants from fuckmark.transforms.schema import InvariantStatus @@ -46,6 +49,19 @@ def test_stage_d_ledger_identities_are_frozen_before_inspection() -> None: assert_rule_construction_seed(890000) assert_development_seed(CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) assert_development_seed(CYCLE7_STAGE_C_VALIDATION_SEED_BASE, role=CYCLE7_VALIDATION_ROLE) + with pytest.raises(ValueError, match="rule-construction"): + admit_stage_d1_seed(890000, samples_from=None) + admit_stage_d1_seed( + 890000, + samples_from=Path("evidence/cycle7-stage-d-2026-08-25/samples.json"), + ) + with pytest.raises(ValueError, match="exploratory"): + admit_stage_d1_seed( + 880000, + samples_from=Path("evidence/cycle7-stage-d-validation-880000-2026-08-25/samples.json"), + ) + with pytest.raises(ValueError, match="confirmation-reserved"): + admit_stage_d1_seed(830000, samples_from=Path("evidence/cycle7-stage-d-2026-08-25/samples.json")) def test_word_boundary_swaps_space_and_newline() -> None: From 0eacecac562767528c30f48f8f01461bbe87ff09 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 26 Aug 2026 02:53:04 +0000 Subject: [PATCH 5/6] Record Cycle 8 seed coexistence after rebasing Stage D onto main. Cycle 8 independently used 890000 with a disjoint document-structure versus invisible-carrier corpus. Stage D evidence stays on the document-structure texts. 880000 is Cycle 7 Stage D validation and remains blocked from Cycle 8. Catalog v5 was not retuned. Co-authored-by: Byte271 --- CHANGELOG.md | 1 + docs/cycle7/README.md | 9 ++-- docs/cycle7/live-state-audit.md | 10 +++- docs/cycle7/seed-ledger.md | 4 +- docs/cycle7/stage-d-decision.md | 7 +-- docs/cycle8/README.md | 2 +- docs/cycle8/seed-ledger.md | 4 +- fuckmark/cycle7/ledger.py | 10 +++- tests/test_cycle7_cycle8_seed_coexistence.py | 56 ++++++++++++++++++++ 9 files changed, 89 insertions(+), 14 deletions(-) create mode 100644 tests/test_cycle7_cycle8_seed_coexistence.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d29dc03..d9006a55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Cycle 8 fixture compare reports visible-projection pass `20/20` for space-carrier arms. - Chromium `pre` screenshots: U+034F / U+FE00 pixel-equal; U+200C PNG bytes differ. - Detector-blind GPT-2 / SynthID development scoring on seeds `890000`, `900000`, and `910000` reduced watermarked detections for U+034F space-carrier x1 without unwatermarked inflation on these tiny 4-pair corpora. This is not confirmation and is not a product promotion. +- Cycle 7 Stage D catalog v5 (word-boundary newline) is research-only `PROMISING_DEVELOPMENT` on n=4+4 and remains product-disqualified. Family 12 is not a product carrier. - Product contract loading uses the embedded v1 payload in installed wheels. Writers that replace pinned `specs/cycle8` tokenizer JSON refuse to run without a GPT-2 encoder; the detector harness still scores when tiktoken is absent. Chromium HTML evidence encodes less-than and greater-than as JSON unicode escapes so an ASCII script terminator cannot close the inline script. ## v0.2.0 — Exact-survival confirmation and release hardening diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index dd76732e..c37e34cd 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -6,11 +6,12 @@ Cycle 7 researched collapse-resistant *visible* transforms. Those edits may pres Cycle 8 (`docs/cycle8/`) is the exact-visible-projection generation. Do not promote Cycle 7 catalogs into `release_transform_registry()`. -## Live state (verified 2026-08-25) +## Live state (verified 2026-08-26) See `docs/cycle7/live-state-audit.md`. Independent GitHub inspection: -- `main` HEAD `d7eeb0f905b7046ddc4a4d8281354f06713d58b0` (PR #96 squash-merge) +- `main` HEAD `3ab6bd1f98077128a5b8c83ee1f30f89f58d6e77` (PR #97 squash-merge: product-visible invariance / Cycle 8) +- Cycle 7 Stage B/C ancestor `d7eeb0f905b7046ddc4a4d8281354f06713d58b0` (PR #96) - Cycle 6 freeze ancestor `ddccd74a9e0e710085b385fed98959f2730b9d60` - PR #93 and PR #94 merged - Recovery run `32886342498` success @@ -103,9 +104,9 @@ Stage C1 on seed `870000` (topic frozen as `measurement protocol`) added clause- ## Stage D -Stage D1 on seed `890000` (topic frozen as `document structure`) added word-boundary newlines. Mean durable candidates: **38.0**. Collapse-surviving intact/root **0.164**. Detector: durable **0/4** after collapse; Cycle 6 spacing **3/4** after collapse. +Stage D1 on seed `890000` (topic frozen as `document structure`) added word-boundary newlines. Mean durable candidates: **38.0**. Collapse-surviving intact/root **0.164**. Detector: durable **0/4** after collapse; Cycle 6 spacing **3/4** after collapse. Cycle 8 later used the same seed base with topic `invisible carrier development` and a disjoint corpus; Stage D evidence is the `document structure` texts only. -Disjoint validation seed `880000` (topic frozen as `independent check`) replicated: mean **44.875**, collapsed intact/root **0.080**, durable **0/4** after collapse, Cycle 6 spacing **4/4** after collapse. Overall: **`PROMISING_DEVELOPMENT`**. Not formal confirmation. Details: `docs/cycle7/stage-d-decision.md`. +Disjoint validation seed `880000` (topic frozen as `independent check`) replicated: mean **44.875**, collapsed intact/root **0.080**, durable **0/4** after collapse, Cycle 6 spacing **4/4** after collapse. Overall: **`PROMISING_DEVELOPMENT`**. Not formal confirmation. Catalog v5 remains **PRODUCT_DISQUALIFIED** for the CLI. Details: `docs/cycle7/stage-d-decision.md`. Not claimed: diff --git a/docs/cycle7/live-state-audit.md b/docs/cycle7/live-state-audit.md index 4e143b41..ef765c3b 100644 --- a/docs/cycle7/live-state-audit.md +++ b/docs/cycle7/live-state-audit.md @@ -76,5 +76,13 @@ Open PR after the merge: [#97](https://github.com/byte271/FuckMark/pull/97) (`cu Stage C1 on seed `870000` was `INSUFFICIENT_EVIDENCE` (mean durable candidates 4.75; durable detector 3/4 after collapse). Seed `880000` was not inspected. -Stage D continues on branch `cursor/cycle7-stage-d-wrap-3fb1` from this `main`, with exploratory seed `890000` and topic `document structure` frozen before generation. Disjoint validation seed `880000` / topic `independent check` was scored after catalog v5 was frozen and is now used. Confirmation seeds `830000` / `840000` / `850000` were not inspected. +## Continuation (2026-08-26, after PR #97 squash-merge) + +Verified `main` HEAD: `3ab6bd1f98077128a5b8c83ee1f30f89f58d6e77` + +Subject: `Restore exact user-visible invariance and start Cycle 8 carrier research (#97)` + +Cycle 6 formal result is unchanged: `NONZERO_RESIDUAL` 7/192. Cycle 7 visible-edit catalogs are **PRODUCT_DISQUALIFIED** for the CLI. + +PR [#98](https://github.com/byte271/FuckMark/pull/98) (`cursor/cycle7-stage-d-wrap-3fb1`) was closed unmerged when #97 landed, then rebased onto this `main`. Cycle 8 exploratory seed `890000` / topic `invisible carrier development` and Cycle 7 Stage D seed `890000` / topic `document structure` share pair seeds but have disjoint text hashes. Cycle 7 Stage D validation used `880000`; Cycle 8 still must not inspect it. Confirmation seeds `830000` / `840000` / `850000` were not inspected. diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index a0bf1fa1..00a13236 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -37,5 +37,7 @@ Stage C1 generation used 870000 with topic `measurement protocol`. That seed is Stage D1 generation used 890000 with topic `document structure`. Fresh rule-construction generation must call `assert_rule_construction_seed(890000)` and is now locked. Replay of the frozen D1 evidence via `--samples-from` uses exploratory-development admission so 890000 can be rescored. Do not retune catalog v5 on 890000. -Stage D validation used 880000 with topic `independent check`. Do not retune catalog v5 on 880000. A later revised mechanism must reserve a new unused validation seed. +Cycle 8 independently assigned the same seed base `890000` with topic `invisible carrier development` and generated a different TinyDev corpus (same pair seeds `890000`/`890032`/`890064`/`890096`, disjoint text hashes). Stage D evidence is the `document structure` texts only. Do not retune Cycle 7 on Cycle 8 texts, or Cycle 8 on Stage D texts. Cycle 8 seeds `900000`, `910000`, and `920000` are not Cycle 7 data. + +Stage D validation used 880000 with topic `independent check`. Do not retune catalog v5 on 880000. Cycle 8 must still not inspect 880000. A later revised mechanism must reserve a new unused validation seed. diff --git a/docs/cycle7/stage-d-decision.md b/docs/cycle7/stage-d-decision.md index b802ed69..41232d53 100644 --- a/docs/cycle7/stage-d-decision.md +++ b/docs/cycle7/stage-d-decision.md @@ -2,7 +2,7 @@ **Decision: `PROMISING_DEVELOPMENT`** -This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Catalog v5 was frozen before disjoint validation. Seed `880000` was then used as validation and must not be used for retuning. +This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Catalog v5 was frozen before disjoint validation. Seed `880000` was then used as validation and must not be used for retuning. Catalog v5 remains **PRODUCT_DISQUALIFIED** for `release_transform_registry()`. Catalog: `cycle7-durable-rule-catalog-v5`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. @@ -12,7 +12,7 @@ v5 adds Family 12 (word-boundary newline). Families 1–11 are unchanged from ca ## Stage D1 corpus -Exploratory seed `890000` and topic `document structure` were frozen in `cycle7-seed-ledger-v4` before generation. Pair stride 32, one pair per TinyDev domain, 8 texts (4 watermarked + 4 matched unwatermarked). Seeds `810000`, `860000`, `820000`, and `870000` were not used as rule-construction data for v5. +Exploratory seed `890000` and topic `document structure` were frozen in `cycle7-seed-ledger-v4` before generation. Pair stride 32, one pair per TinyDev domain, 8 texts (4 watermarked + 4 matched unwatermarked). Seeds `810000`, `860000`, `820000`, and `870000` were not used as rule-construction data for v5. Cycle 8 independently generated a different corpus from the same pair seeds with topic `invisible carrier development`; those texts are not Stage D evidence. Artifact hashes: @@ -128,5 +128,6 @@ Remaining bounds: layout/reflow sanitizer is not in the frozen suite (HYPOTHESIS 1. Do not retune catalog v5 on `890000` or `880000`. 2. Do not inspect `830000` / `840000` / `850000` unless a later frozen confirmation protocol names them. -3. A later revised mechanism must reserve a new unused validation seed. Do not recycle `820000` or `880000`. +3. A later revised mechanism must reserve a new unused validation seed. Do not recycle `820000` or `880000`. Do not use Cycle 8 seeds `900000` / `910000` / `920000`. 4. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. +5. Do not promote catalog v5 into the product registry. diff --git a/docs/cycle8/README.md b/docs/cycle8/README.md index 7058f196..9bb56bfd 100644 --- a/docs/cycle8/README.md +++ b/docs/cycle8/README.md @@ -17,7 +17,7 @@ Cycle 8 is a new scientific generation. The mechanism class is hidden Unicode re ## Seed ledger -See `docs/cycle8/seed-ledger.md`. Seeds `890000`, `900000`, `910000`, and `920000` were assigned before Cycle 8 generation. Do not inspect `830000` / `840000` / `850000`. Do not inspect Cycle 7 reserved `880000`. +See `docs/cycle8/seed-ledger.md`. Seeds `890000`, `900000`, `910000`, and `920000` were assigned before Cycle 8 generation. Do not inspect `830000` / `840000` / `850000`. Do not inspect Cycle 7 validation seed `880000` (used by Cycle 7 Stage D; still blocked from Cycle 8). Seed `890000` is also Cycle 7 Stage D's exploratory pair-seed with a disjoint `document structure` corpus; do not mix those texts. ## Carrier research diff --git a/docs/cycle8/seed-ledger.md b/docs/cycle8/seed-ledger.md index 46500441..b70a70b7 100644 --- a/docs/cycle8/seed-ledger.md +++ b/docs/cycle8/seed-ledger.md @@ -12,14 +12,14 @@ Seeds were assigned **before** any Cycle 8 text generation or detector look. | 720000, 730000 | Cycle 6 development. Spent. | | 810000, 860000, 870000 | Cycle 7 exploratory. Spent for new rule construction. | | 820000 | Cycle 7 Stage B3 validation. Spent. | -| 880000 | Cycle 7 reserved validation. Still unseen. Do not inspect from Cycle 8. | +| 880000 | Cycle 7 Stage D disjoint validation of catalog v5 (`independent check`). Do not inspect from Cycle 8. Do not retune Cycle 7 or Cycle 8 on it. | | 830000, 840000, 850000 | Confirmation reserved. Do not inspect. | ## Cycle 8 roles | Role | Seed | Topic | May score detectors? | | --- | --- | --- | --- | -| Exploratory development | 890000 | invisible carrier development | yes, development only | +| Exploratory development | 890000 | invisible carrier development | yes, development only; Cycle 7 Stage D also used this seed base with a different topic (`document structure`) and disjoint texts | | Exploratory replication | 900000 | invisible carrier replication | yes, after freeze of a mechanism from 890000 | | Validation | 910000 | invisible carrier validation | only after a freeze; do not retune | | Secondary exploratory | 920000 | unused unless 890000 is exhausted | yes, development only | diff --git a/fuckmark/cycle7/ledger.py b/fuckmark/cycle7/ledger.py index fc363305..f4d70b92 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -93,7 +93,12 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Seed 890000 and topic 'document structure' were frozen before " "any Stage D generation or detector look. " "Seed 880000 was used as Stage D disjoint validation after catalog v5 " - "was frozen; do not retune on it." + "was frozen; do not retune on it. " + "Cycle 8 independently assigned 890000 with topic 'invisible carrier " + "development' and generated a different TinyDev corpus from the same " + "pair seeds. Do not retune Cycle 7 on Cycle 8 texts or Cycle 8 on " + "Cycle 7 Stage D texts. Do not use Cycle 8 seeds 900000, 910000, or " + "920000 for Cycle 7 construction." ), "spent_corpus_rule": ( "Do not use 720000, 730000, 760000, 770000, or 780000 as " @@ -102,7 +107,8 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Do not retune on validation seed 820000. " "Do not retune on 870000. " "Do not retune on 890000 or validation seed 880000. " - "Do not inspect 830000, 840000, or 850000." + "Do not inspect 830000, 840000, or 850000. " + "Do not use 900000, 910000, or 920000 as Cycle 7 data." ), } diff --git a/tests/test_cycle7_cycle8_seed_coexistence.py b/tests/test_cycle7_cycle8_seed_coexistence.py new file mode 100644 index 00000000..f0fe8478 --- /dev/null +++ b/tests/test_cycle7_cycle8_seed_coexistence.py @@ -0,0 +1,56 @@ +import json +from pathlib import Path + +import pytest + +from fuckmark.cycle7.ledger import ( + CYCLE7_EXPLORATORY_ROLE, + CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_D1_TOPIC, + assert_development_seed, +) +from fuckmark.cycle8.ledger import ( + CYCLE8_EXPLORATORY_SEED_BASE, + CYCLE8_EXPLORATORY_TOPIC, + CYCLE8_REPLICATION_SEED_BASE, + CYCLE8_SECONDARY_EXPLORATORY_SEED_BASE, + CYCLE8_VALIDATION_SEED_BASE, + assert_cycle8_development_seed, +) + + +def test_cycle7_stage_d_and_cycle8_share_890000_with_disjoint_corpora() -> None: + assert CYCLE7_STAGE_D1_EXPLORATORY_SEED_BASE == CYCLE8_EXPLORATORY_SEED_BASE == 890000 + assert CYCLE7_STAGE_D1_TOPIC == "document structure" + assert CYCLE8_EXPLORATORY_TOPIC == "invisible carrier development" + assert CYCLE7_STAGE_D1_TOPIC != CYCLE8_EXPLORATORY_TOPIC + cycle7 = json.loads( + Path("evidence/cycle7-stage-d-2026-08-25/samples.json").read_text(encoding="utf-8") + ) + cycle8 = json.loads( + Path("evidence/cycle8-exploratory-890000-2026-08-25/detector-compare.json").read_text( + encoding="utf-8" + ) + ) + assert cycle7["topic"] == CYCLE7_STAGE_D1_TOPIC + assert cycle8["topic"] == CYCLE8_EXPLORATORY_TOPIC + cycle7_hashes = {sample["text_sha256"] for sample in cycle7["samples"]} + cycle8_hashes = {sample["text_sha256"] for sample in cycle8["samples"]} + assert cycle7_hashes.isdisjoint(cycle8_hashes) + assert len(cycle7_hashes) == 8 + assert len(cycle8_hashes) == 8 + + +def test_cycle8_still_blocks_cycle7_stage_d_validation_seed() -> None: + with pytest.raises(ValueError): + assert_cycle8_development_seed(880000, role="validation_development") + + +def test_cycle7_does_not_admit_cycle8_exclusive_seeds() -> None: + for seed in ( + CYCLE8_REPLICATION_SEED_BASE, + CYCLE8_VALIDATION_SEED_BASE, + CYCLE8_SECONDARY_EXPLORATORY_SEED_BASE, + ): + with pytest.raises(ValueError, match="not in the Cycle 7 ledger"): + assert_development_seed(seed, role=CYCLE7_EXPLORATORY_ROLE) From b24a85021694f57fa4955f6155b073d6bd93bd84 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 26 Aug 2026 04:17:22 +0000 Subject: [PATCH 6/6] Pin Stage B and Stage C replay to historical durable catalogs. The live durable alias is catalog v5. Stage C --samples-from replay must keep enumerating v4 so frozen 870000 density stays 4.75 instead of picking up Family 12 word-boundary newlines. Stage B replay is pinned to v3 for the same reason. Catalog v5 evidence is unchanged. Co-authored-by: Byte271 --- fuckmark/cycle7/compare.py | 12 +++++-- fuckmark/cycle7/density.py | 27 ++++++++++---- fuckmark/cycle7/durable_rules.py | 20 ++++++++--- fuckmark/cycle7/registry.py | 38 +++++++++++++++++++- fuckmark/cycle7/stage_b.py | 10 +++--- fuckmark/cycle7/stage_c.py | 3 +- fuckmark/cycle7_stage_a_hf.py | 3 ++ fuckmark/cycle7_stage_b_hf.py | 51 ++++++++++++++++++++++----- fuckmark/cycle7_stage_c_hf.py | 34 ++++++++++++++---- tests/test_cycle7_stage_b.py | 28 ++++++++++++++- tests/test_cycle7_stage_c_families.py | 38 +++++++++++++++++++- 11 files changed, 228 insertions(+), 36 deletions(-) diff --git a/fuckmark/cycle7/compare.py b/fuckmark/cycle7/compare.py index d593a34d..743983f4 100644 --- a/fuckmark/cycle7/compare.py +++ b/fuckmark/cycle7/compare.py @@ -17,10 +17,14 @@ def _registries(): + return cycle7_arm_registries() + + +def cycle7_arm_registries(*, durable=None, combined=None): return { CYCLE6_SPACING_ARM_ID: quote_safe_zrd_transform_registry(), - CYCLE7_DURABLE_ARM_ID: cycle7_durable_transform_registry(), - CYCLE7_COMBINED_ARM_ID: cycle7_combined_transform_registry(), + CYCLE7_DURABLE_ARM_ID: cycle7_durable_transform_registry() if durable is None else durable, + CYCLE7_COMBINED_ARM_ID: cycle7_combined_transform_registry() if combined is None else combined, } @@ -31,7 +35,9 @@ def compare_arms_on_text( tokenizer: Any, tokenizer_identity_hash: str, budget: int = CYCLE6_BUDGET, + registries: dict[str, Any] | None = None, ) -> dict[str, Cycle7ArmMeasurement]: + active = _registries() if registries is None else registries return { arm_id: measure_arm( arm_id=arm_id, @@ -42,7 +48,7 @@ def compare_arms_on_text( tokenizer_identity_hash=tokenizer_identity_hash, budget=budget, ) - for arm_id, registry in _registries().items() + for arm_id, registry in active.items() } diff --git a/fuckmark/cycle7/density.py b/fuckmark/cycle7/density.py index f08e1780..6c9731db 100644 --- a/fuckmark/cycle7/density.py +++ b/fuckmark/cycle7/density.py @@ -2,6 +2,7 @@ from collections.abc import Mapping, Sequence +from ..transforms.registry import TransformRegistry from .registry import cycle7_durable_transform_registry @@ -9,14 +10,20 @@ def _prefix_ids(rule_ids: Sequence[str], prefixes: tuple[str, ...]) -> tuple[str return tuple(rule_id for rule_id in rule_ids if rule_id.startswith(prefixes)) -def durable_candidate_rule_ids(text: str) -> tuple[str, ...]: - enumeration = cycle7_durable_transform_registry().enumerate(text) +def durable_candidate_rule_ids(text: str, *, registry: TransformRegistry | None = None) -> tuple[str, ...]: + active = cycle7_durable_transform_registry() if registry is None else registry + enumeration = active.enumerate(text) return tuple(candidate.rule_id for candidate in enumeration.candidates) -def durable_density_row(sample_id: str, text: str) -> dict[str, object]: - registry = cycle7_durable_transform_registry() - enumeration = registry.enumerate(text) +def durable_density_row( + sample_id: str, + text: str, + *, + registry: TransformRegistry | None = None, +) -> dict[str, object]: + active = cycle7_durable_transform_registry() if registry is None else registry + enumeration = active.enumerate(text) rule_ids = tuple(candidate.rule_id for candidate in enumeration.candidates) conflict_ids = {item.first_candidate_id for item in enumeration.conflicts} | { item.second_candidate_id for item in enumeration.conflicts @@ -88,8 +95,14 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: } -def durable_density_table(samples: Sequence[Mapping[str, object]]) -> tuple[dict[str, object], ...]: +def durable_density_table( + samples: Sequence[Mapping[str, object]], + *, + registry: TransformRegistry | None = None, +) -> tuple[dict[str, object], ...]: rows: list[dict[str, object]] = [] for sample in samples: - rows.append(durable_density_row(str(sample["sample_id"]), str(sample["text"]))) + rows.append( + durable_density_row(str(sample["sample_id"]), str(sample["text"]), registry=registry) + ) return tuple(rows) diff --git a/fuckmark/cycle7/durable_rules.py b/fuckmark/cycle7/durable_rules.py index 14631652..53ce0285 100644 --- a/fuckmark/cycle7/durable_rules.py +++ b/fuckmark/cycle7/durable_rules.py @@ -682,7 +682,7 @@ def cycle7_coordinating_conjunction_comma_rules() -> tuple[SyntaxTemplateRule, . return tuple(rules) -def cycle7_durable_rules() -> tuple[object, ...]: +def cycle7_stage_b_durable_rules() -> tuple[object, ...]: return ( *development_forward_contraction_rules(), *reverse_contraction_rules(), @@ -696,9 +696,6 @@ def cycle7_durable_rules() -> tuple[object, ...]: *cycle7_typographic_apostrophe_rules(), *cycle7_discourse_comma_rules(), *cycle7_format_boundary_rules(), - *cycle7_clause_punctuation_rules(), - *cycle7_word_boundary_rules(), - *cycle7_quantifier_of_rules(), *cycle7_complementizer_that_rules(), *cycle7_parenthetical_adverb_rules(), *cycle7_coordinating_conjunction_comma_rules(), @@ -707,6 +704,21 @@ def cycle7_durable_rules() -> tuple[object, ...]: ) +def cycle7_stage_c_durable_rules() -> tuple[object, ...]: + return ( + *cycle7_stage_b_durable_rules(), + *cycle7_clause_punctuation_rules(), + *cycle7_quantifier_of_rules(), + ) + + +def cycle7_durable_rules() -> tuple[object, ...]: + return ( + *cycle7_stage_c_durable_rules(), + *cycle7_word_boundary_rules(), + ) + + def rejected_ambiguous_contraction_examples() -> tuple[tuple[str, str], ...]: return ( ("he would", "he'd"), diff --git a/fuckmark/cycle7/registry.py b/fuckmark/cycle7/registry.py index 5bf6e31f..8274eb9e 100644 --- a/fuckmark/cycle7/registry.py +++ b/fuckmark/cycle7/registry.py @@ -8,7 +8,11 @@ ) from ..transforms.effectiveness_profile import content_region_destruction_surface_rules from ..transforms.registry import TransformRegistry -from .durable_rules import cycle7_durable_rules +from .durable_rules import ( + cycle7_durable_rules, + cycle7_stage_b_durable_rules, + cycle7_stage_c_durable_rules, +) CYCLE7_STAGE_B_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v3" @@ -17,6 +21,22 @@ CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v4" +def cycle7_stage_b_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: + return TransformRegistry( + cycle7_stage_b_durable_rules(), + identifiers, + quote_policy_id=CYCLE7_QUOTE_SAFE_DURABLE_POLICY_ID, + ) + + +def cycle7_stage_c_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: + return TransformRegistry( + cycle7_stage_c_durable_rules(), + identifiers, + quote_policy_id=CYCLE7_QUOTE_SAFE_DURABLE_POLICY_ID, + ) + + def cycle7_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: return TransformRegistry( cycle7_durable_rules(), @@ -25,6 +45,22 @@ def cycle7_durable_transform_registry(identifiers: Sequence[str] = ()) -> Transf ) +def cycle7_stage_b_combined_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: + return TransformRegistry( + (*cycle7_stage_b_durable_rules(), *content_region_destruction_surface_rules()), + identifiers, + quote_policy_id=CYCLE7_QUOTE_SAFE_MIXED_POLICY_ID, + ) + + +def cycle7_stage_c_combined_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: + return TransformRegistry( + (*cycle7_stage_c_durable_rules(), *content_region_destruction_surface_rules()), + identifiers, + quote_policy_id=CYCLE7_QUOTE_SAFE_MIXED_POLICY_ID, + ) + + def cycle7_combined_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: return TransformRegistry( (*cycle7_durable_rules(), *content_region_destruction_surface_rules()), diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py index d6dcf711..c696fd76 100644 --- a/fuckmark/cycle7/stage_b.py +++ b/fuckmark/cycle7/stage_b.py @@ -5,7 +5,7 @@ from ..hashing import sha256_json from .density import durable_density_table from .instrumentation import measure_arm -from .registry import cycle7_durable_transform_registry +from .registry import cycle7_durable_transform_registry, cycle7_stage_b_durable_transform_registry CYCLE7_STAGE_B_DECISION_VERSION = "cycle7-stage-b-decision-v1" @@ -114,7 +114,7 @@ def density_artifact( seed_base: int, catalog_version: str, ) -> dict[str, object]: - rows = durable_density_table(samples) + rows = durable_density_table(samples, registry=cycle7_stage_b_durable_transform_registry()) summary = summarize_density_rows(rows) payload = { "algorithm_version": "cycle7-stage-b-density-v1", @@ -132,8 +132,10 @@ def geometry_intact_means( samples: Sequence[Mapping[str, object]], tokenizer, tokenizer_identity_hash: str, + *, + registry=None, ) -> dict[str, float]: - registry = cycle7_durable_transform_registry() + active = cycle7_durable_transform_registry() if registry is None else registry intact = [] collapsed_intact = [] selected = [] @@ -143,7 +145,7 @@ def geometry_intact_means( arm_id="cycle7_durable", source_sample_id=str(sample["sample_id"]), source_text=str(sample["text"]), - registry=registry, + registry=active, tokenizer=tokenizer, tokenizer_identity_hash=tokenizer_identity_hash, ) diff --git a/fuckmark/cycle7/stage_c.py b/fuckmark/cycle7/stage_c.py index 75bc8ad3..78dd6abe 100644 --- a/fuckmark/cycle7/stage_c.py +++ b/fuckmark/cycle7/stage_c.py @@ -4,6 +4,7 @@ from ..hashing import sha256_json from .density import durable_density_table +from .registry import cycle7_stage_c_durable_transform_registry from .stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows @@ -80,7 +81,7 @@ def density_artifact_stage_c( seed_base: int, catalog_version: str, ) -> dict[str, object]: - rows = durable_density_table(samples) + rows = durable_density_table(samples, registry=cycle7_stage_c_durable_transform_registry()) summary = summarize_density_rows(rows) payload = { "algorithm_version": "cycle7-stage-c-density-v1", diff --git a/fuckmark/cycle7_stage_a_hf.py b/fuckmark/cycle7_stage_a_hf.py index cec11678..c5ae5308 100644 --- a/fuckmark/cycle7_stage_a_hf.py +++ b/fuckmark/cycle7_stage_a_hf.py @@ -151,6 +151,8 @@ def _evaluate_samples( identity_hash: str, adapter: HuggingFaceSynthIDAdapter, eos: int, + *, + registries: dict[str, Any] | None = None, ) -> tuple[tuple[dict[str, object], ...], tuple[dict[str, object], ...], dict[str, object]]: scored_rows: list[dict[str, object]] = [] geometry_rows: list[dict[str, object]] = [] @@ -161,6 +163,7 @@ def _evaluate_samples( tokenizer=tokenizer, tokenizer_identity_hash=identity_hash, budget=CYCLE6_BUDGET, + registries=registries, ) geometry_rows.append( { diff --git a/fuckmark/cycle7_stage_b_hf.py b/fuckmark/cycle7_stage_b_hf.py index d7ec2592..6c3f28d0 100644 --- a/fuckmark/cycle7_stage_b_hf.py +++ b/fuckmark/cycle7_stage_b_hf.py @@ -14,9 +14,17 @@ CYCLE7_COMBINED_ARM_ID, CYCLE7_DURABLE_ARM_ID, compare_arms_on_text, + cycle7_arm_registries, summarize_arm, ) -from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from .cycle7.durable_rules import ( + CYCLE7_DURABLE_RULE_CATALOG_VERSION, + CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, +) +from .cycle7.registry import ( + cycle7_stage_b_combined_transform_registry, + cycle7_stage_b_durable_transform_registry, +) from .cycle7.ledger import ( CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_B1_TOPIC, @@ -108,6 +116,10 @@ def _geometry_artifact( tokenizer: Any, identity_hash: str, seed_base: int, + *, + catalog_version: str = CYCLE7_DURABLE_RULE_CATALOG_VERSION, + registries: dict[str, Any] | None = None, + durable_registry=None, ) -> dict[str, object]: rows = [] for sample in samples: @@ -116,6 +128,7 @@ def _geometry_artifact( source_text=str(sample["text"]), tokenizer=tokenizer, tokenizer_identity_hash=identity_hash, + registries=registries, ) rows.append( { @@ -128,11 +141,16 @@ def _geometry_artifact( durable_samples = tuple( {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples ) - intact = geometry_intact_means(durable_samples, tokenizer, identity_hash) + intact = geometry_intact_means( + durable_samples, + tokenizer, + identity_hash, + registry=durable_registry, + ) payload = { "algorithm_version": "cycle7-stage-b-geometry-v1", "seed_base": seed_base, - "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, + "durable_catalog_version": catalog_version, "detector_access_used_for_selection": False, "rows": tuple(rows), "durable_intact_means": intact, @@ -167,9 +185,21 @@ def run_stage_b( density = density_artifact( density_samples, seed_base=seed_base, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, + ) + stage_b_registries = cycle7_arm_registries( + durable=cycle7_stage_b_durable_transform_registry(), + combined=cycle7_stage_b_combined_transform_registry(), + ) + geometry = _geometry_artifact( + samples, + tokenizer, + identity_hash, + seed_base, + catalog_version=CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, + registries=stage_b_registries, + durable_registry=cycle7_stage_b_durable_transform_registry(), ) - geometry = _geometry_artifact(samples, tokenizer, identity_hash, seed_base) density_decision = classify_stage_b_density( density_summary=density["summary"], collapsed_intact_mean=float(geometry["durable_intact_means"]["mean_collapsed_intact_window_count"]), @@ -178,14 +208,19 @@ def run_stage_b( detector = None if not skip_detector: geometry_rows, scored_rows, summaries = _evaluate_samples( - samples, tokenizer, identity_hash, adapter, eos + samples, + tokenizer, + identity_hash, + adapter, + eos, + registries=stage_b_registries, ) detector = _build_detector_artifact( samples, geometry_rows, scored_rows, summaries, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, ) detector = { **{k: v for k, v in detector.items() if k != "artifact_hash"}, @@ -283,7 +318,7 @@ def main(argv: list[str] | None = None) -> int: "seed_base": bundle["seed_base"], "topic": bundle["topic"], "stage": bundle["stage"], - "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, + "durable_catalog_version": CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, "samples": tuple( { "sample_id": sample["sample_id"], diff --git a/fuckmark/cycle7_stage_c_hf.py b/fuckmark/cycle7_stage_c_hf.py index 4fffad44..4a8888a4 100644 --- a/fuckmark/cycle7_stage_c_hf.py +++ b/fuckmark/cycle7_stage_c_hf.py @@ -5,13 +5,18 @@ from pathlib import Path from .config import canonical_json_text -from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from .cycle7.compare import cycle7_arm_registries +from .cycle7.durable_rules import CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION from .cycle7.ledger import ( CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_C1_TOPIC, CYCLE7_STAGE_C_VALIDATION_SEED_BASE, assert_rule_construction_seed, ) +from .cycle7.registry import ( + cycle7_stage_c_combined_transform_registry, + cycle7_stage_c_durable_transform_registry, +) from .cycle7.stage_c import classify_stage_c_density, density_artifact_stage_c from .cycle7_stage_a_hf import _adapter_and_tokenizer, _build_detector_artifact, _evaluate_samples from .cycle7_stage_b_hf import _generate_stage_b_samples, _geometry_artifact @@ -45,9 +50,21 @@ def run_stage_c1( density = density_artifact_stage_c( density_samples, seed_base=seed_base, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, + ) + stage_c_registries = cycle7_arm_registries( + durable=cycle7_stage_c_durable_transform_registry(), + combined=cycle7_stage_c_combined_transform_registry(), + ) + geometry = _geometry_artifact( + samples, + tokenizer, + identity_hash, + seed_base, + catalog_version=CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, + registries=stage_c_registries, + durable_registry=cycle7_stage_c_durable_transform_registry(), ) - geometry = _geometry_artifact(samples, tokenizer, identity_hash, seed_base) density_decision = classify_stage_c_density( density_summary=density["summary"], collapsed_intact_mean=float(geometry["durable_intact_means"]["mean_collapsed_intact_window_count"]), @@ -56,14 +73,19 @@ def run_stage_c1( detector = None if not skip_detector: geometry_rows, scored_rows, summaries = _evaluate_samples( - samples, tokenizer, identity_hash, adapter, eos + samples, + tokenizer, + identity_hash, + adapter, + eos, + registries=stage_c_registries, ) detector = _build_detector_artifact( samples, geometry_rows, scored_rows, summaries, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, ) detector = { **{k: v for k, v in detector.items() if k != "artifact_hash"}, @@ -117,7 +139,7 @@ def main(argv: list[str] | None = None) -> int: "seed_base": bundle["seed_base"], "topic": bundle["topic"], "stage": bundle["stage"], - "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, + "durable_catalog_version": CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, "samples": tuple( { "sample_id": sample["sample_id"], diff --git a/tests/test_cycle7_stage_b.py b/tests/test_cycle7_stage_b.py index 653d9bf3..d3b4efca 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -1,3 +1,6 @@ +import json +from pathlib import Path + from fuckmark.cycle7.density import durable_density_table from fuckmark.cycle7.durable_rules import ( CYCLE7_DURABLE_RULE_CATALOG_VERSION, @@ -98,8 +101,9 @@ def test_stage_b_density_classifier_on_construction_fixtures() -> None: artifact = density_artifact( samples, seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, - catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + catalog_version=CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, ) + assert artifact["durable_catalog_version"] == "cycle7-durable-rule-catalog-v3" assert artifact["detector_access_used_for_selection"] is False assert artifact["seed_base"] == 860000 assert artifact["artifact_hash"] @@ -134,3 +138,25 @@ def test_stage_b_classifier_keeps_low_density_as_insufficient() -> None: } decision = classify_stage_b_density(density_summary=summary) assert decision["decision"] == INSUFFICIENT_EVIDENCE + + +def test_stage_b_density_replay_stays_on_catalog_v3() -> None: + previous = json.loads( + Path("evidence/cycle7-stage-b-2026-08-25/samples.json").read_text(encoding="utf-8") + ) + samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in previous["samples"] + ) + artifact = density_artifact( + samples, + seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, + ) + assert artifact["durable_catalog_version"] == "cycle7-durable-rule-catalog-v3" + assert artifact["summary"]["mean_candidate_count"] == 4.25 + assert artifact["summary"]["mean_word_boundary_candidate_count"] == 0.0 + assert artifact["summary"]["mean_format_clause_candidate_count"] == 0.0 + live = durable_density_table(samples) + live_summary = summarize_density_rows(live) + assert live_summary["mean_candidate_count"] == 41.75 + assert live_summary["mean_word_boundary_candidate_count"] == 36.0 diff --git a/tests/test_cycle7_stage_c_families.py b/tests/test_cycle7_stage_c_families.py index 28e8db29..eb50cb76 100644 --- a/tests/test_cycle7_stage_c_families.py +++ b/tests/test_cycle7_stage_c_families.py @@ -1,3 +1,6 @@ +import json +from pathlib import Path + import pytest from fuckmark.cycle7.density import durable_density_row, durable_density_table @@ -13,7 +16,10 @@ CYCLE7_STAGE_C_VALIDATION_SEED_BASE, CYCLE7_STAGE_C_VALIDATION_TOPIC, ) -from fuckmark.cycle7.registry import cycle7_durable_transform_registry +from fuckmark.cycle7.registry import ( + cycle7_durable_transform_registry, + cycle7_stage_c_durable_transform_registry, +) from fuckmark.cycle7.stage_b import INSUFFICIENT_EVIDENCE, PROMISING_DEVELOPMENT, summarize_density_rows from fuckmark.cycle7.stage_c import classify_stage_c_density, density_artifact_stage_c from fuckmark.cycle7.whitespace_collapse import collapse_horizontal_ascii_whitespace, sanitize_cycle7_variant @@ -189,3 +195,33 @@ def test_gpt2_tokenization_changes_for_stage_c_channels() -> None: assert tokenizer.encode(left, add_special_tokens=False) != tokenizer.encode( right, add_special_tokens=False ) + + +def test_stage_c_density_replay_stays_on_catalog_v4() -> None: + previous = json.loads( + Path("evidence/cycle7-stage-c-2026-08-25/samples.json").read_text(encoding="utf-8") + ) + samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in previous["samples"] + ) + artifact = density_artifact_stage_c( + samples, + seed_base=CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_STAGE_C_DURABLE_RULE_CATALOG_VERSION, + ) + assert artifact["durable_catalog_version"] == "cycle7-durable-rule-catalog-v4" + assert artifact["summary"]["mean_candidate_count"] == 4.75 + assert artifact["summary"]["mean_word_boundary_candidate_count"] == 0.0 + assert artifact["summary"]["mean_format_clause_candidate_count"] == 1.5 + v4_ids = { + rule.rule_id for rule in cycle7_stage_c_durable_transform_registry().rules + } + assert not any(rule_id.startswith("cycle7-word-boundary-") for rule_id in v4_ids) + live = durable_density_table(samples) + live_summary = summarize_density_rows(live) + assert live_summary["mean_candidate_count"] == 37.625 + assert live_summary["mean_word_boundary_candidate_count"] == 32.875 + assert any( + rule.rule_id.startswith("cycle7-word-boundary-") + for rule in cycle7_durable_transform_registry().rules + )