From 20b7fb04ab310510742b800da3e4f04e2be8e4d1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 20:41:02 +0000 Subject: [PATCH 1/7] Add Cycle 7 Stage B high-density durable catalog v3. Extend the seed ledger with exploratory seed 860000 before any Stage B generation. Add collapse-resistant families for sentence newlines, bounded optional that, discourse commas, prenominal hyphens, parenthetical adverbs, and coordinating commas. Co-authored-by: Byte271 --- docs/cycle7/README.md | 26 ++- docs/cycle7/durable-families.md | 100 +++++++- docs/cycle7/literature.md | 14 ++ docs/cycle7/seed-ledger.md | 15 +- fuckmark/cycle7/__init__.py | 10 + fuckmark/cycle7/density.py | 59 ++++- fuckmark/cycle7/durable_rules.py | 246 ++++++++++++++++++- fuckmark/cycle7/fixtures.py | 39 ++++ fuckmark/cycle7/ledger.py | 34 ++- fuckmark/cycle7/registry.py | 4 +- fuckmark/cycle7/stage_b.py | 144 ++++++++++++ fuckmark/cycle7_stage_b_hf.py | 233 ++++++++++++++++++ fuckmark/transforms/cycle7_quote_policy.py | 9 +- fuckmark/transforms/format_rules.py | 201 ++++++++++++++++ fuckmark/transforms/lexical_rules.py | 55 +++++ fuckmark/transforms/registry.py | 3 +- fuckmark/transforms/syntax_rules.py | 107 +++++++-- tests/test_cycle7_ledger.py | 12 + tests/test_cycle7_stage_b.py | 89 +++++++ tests/test_cycle7_stage_b_families.py | 260 +++++++++++++++++++++ 20 files changed, 1613 insertions(+), 47 deletions(-) create mode 100644 fuckmark/cycle7/stage_b.py create mode 100644 fuckmark/cycle7_stage_b_hf.py create mode 100644 fuckmark/transforms/format_rules.py create mode 100644 tests/test_cycle7_stage_b.py create mode 100644 tests/test_cycle7_stage_b_families.py diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 89d7285f..814889d9 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -28,8 +28,9 @@ See `docs/cycle7/seed-ledger.md` and `fuckmark/cycle7/ledger.py`. | Role | Seed base | Status | | --- | --- | --- | -| Exploratory development (Stage A) | `810000` | in use | -| Validation development (Stage B) | `820000` | reserved, unused | +| Exploratory development (Stage A) | `810000` | used; do not keep expanding rules against it | +| Exploratory development / rule construction (Stage B1) | `860000` | active; topic frozen as `independent replication` | +| Validation development | `820000` | reserved, unused 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. @@ -46,13 +47,24 @@ The Cycle 6 frozen sanitizer module is unchanged. ## Durable transform families -See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v2`. +See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v3`. + +Stage A (`v2`) families: 1. Unambiguous contractions and closed orthography (Family 1). 2. Attested open ↔ hyphenated compounds (Family 2). 3. In-word ASCII apostrophe ↔ U+2019 (Family 3). -These change tokens without relying on repeated U+0020. They survive ASCII whitespace collapse by construction. Family 3 also survives NFKC and Cf-strip. +Stage B (`v3`) additions, aimed at natural site density: + +4. Sentence-boundary newline (layout; survives `whitespace-collapse-v1` because that sanitizer keeps LF). +5. Bounded optional complementizer / object-relative `that`. +6. Sentence-initial discourse comma. +7. Attested prenominal hyphen modifiers. +8. Parenthetical conjunctive adverb. +9. Coordinating-conjunction comma (`and`/`but`/`or`), with determiner-gated insert. + +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. 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. @@ -64,6 +76,12 @@ Families 2–3 raise candidate density on the same frozen texts (see `evidence/c Details: `docs/cycle7/stage-a-decision.md`. +## Stage B + +Stage B is still development. Catalog `cycle7-durable-rule-catalog-v3` is measured first on density and geometry, then on detector scores, using new exploratory seed `860000`. Seed `820000` remains unseen validation. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. + +This is not Cycle 7 formal confirmation. + Not claimed: - Cycle 7 formal confirmation diff --git a/docs/cycle7/durable-families.md b/docs/cycle7/durable-families.md index b30a0582..807b5d0f 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-v2`. +Catalog identity: `cycle7-durable-rule-catalog-v3` (Stage B development). Families 1–3 remain the frozen Stage A `v2` set; v3 adds higher-density collapse-resistant families. 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. @@ -88,3 +88,101 @@ Conflict geometry: an apostrophe edit overlaps contraction expansion of the same text change → tokenization change → n-gram/context change → observation replacement → g-value drift → score drop. Byte change or a one-off score drop is not enough. Family 1–3 have VERIFIED tokenization change and collapse survival on fixtures. Detector attachment on TinyDev 64-token text is a separate density question. + +## Family 4 — sentence-boundary newline + +Construction: `sentence_boundary_newline`. + +Precondition: `. ` / `? ` / `! ` immediately before an uppercase letter. Exclusions: digits before the mark, single-letter initials, a closed abbreviation list (`Dr.`, `Fig.`, `U.S.`, months, `etc.`), already-newline after the mark, and ellipsis/multi-punctuation (`... Next`). + +Rewrite: swap the single ASCII space after sentence punctuation for a single LF, or the reverse. + +Inverse: the opposite direction. + +Tokenizer: GPT-2 `Hello. World` vs `Hello.\nWorld` is `[15496, 13, 2159]` vs `[15496, 13, 198, 10603]`. VERIFIED on frozen revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. + +Whitespace collapse: `whitespace-collapse-v1` preserves newlines. The rewrite still differs after `ws_collapse` and `ws_collapse_nfkc_cf_strip`. VERIFIED on fixtures. LF is category Cc, not Cf. + +Sanitizer note: this is a layout/formatting channel. A wrap/reflow sanitizer is not in the Cycle 7 frozen sanitizer suite. Survival is VERIFIED only against the six listed Cycle 7 variants. HYPOTHESIS: a paragraph-reflow sanitizer would erase it. + +Conflict geometry: adjacent sentence boundaries do not overlap. Format edits can still compete with spacing for the B14 budget in the combined arm. + +## Family 5 — bounded optional complementizer / object-relative `that` + +Construction: `bounded_complementizer_that_drop`, `bounded_complementizer_that_insert`, `bounded_object_relative_that_drop`. + +Precondition (drop): pronoun + closed attitude/report verb immediately before ` that `, and a closed clause-starter after it. Object-relative drop: determiner + noun of length at least 3 before ` that `, then a subject pronoun + lowercase word. + +Precondition (insert): the same pronoun+verb pattern with a clause-starter and no `that` already present. The stored source `I think ` is a sentinel; matching uses the shared complementizer pattern. + +Rewrite: delete or insert optional `that`. + +Inverse: insert vs drop on the complementizer pair. Object-relative drop is one-way in v3. + +Tokenizer: GPT-2 `I think that the protocol works` versus `I think the protocol works` differs by the `that` token. VERIFIED on the frozen GPT-2 revision. + +Whitespace collapse: the edit is a word, not spaces. Survives. + +False positives blocked: `I found that book`, `so that the logs`, all-caps. + +EXTERNAL-VALIDATION-ONLY: optional complementizer *that* is a high-frequency English alternation in the UID/Jaeger literature. Local admission still requires the closed verb list. + +## Family 6 — sentence-initial discourse comma + +Construction: `sentence_initial_discourse_comma`. + +Closed markers include `However`, `Therefore`, `Moreover`, `In fact`, and other listed conjunctive adverbs. + +Precondition: sentence-initial (start or after `.?!`). Insert is blocked before degree-adverb followers (`much`, `many`, `long`, and the listed set) so `However much evidence` is not rewritten as `However, much evidence`. + +Rewrite: drop or insert the comma after the marker. + +Tokenizer: comma token appears or disappears. HYPOTHESIS on TinyDev density: sparse unless the sample uses discourse markers. + +Whitespace collapse: comma is not space. Survives. + +## Family 7 — attested prenominal hyphen modifiers + +Construction: `attested_prenominal_hyphen_modifier`. + +Closed list includes `well known` / `well-known`, `long term` / `long-term`, `open source` / `open-source`, and other listed prenominal compounds. + +Precondition: same hyphen-chain/path guards as Family 2. Hyphenation additionally requires a following lowercase noun so predicative `The method is well known.` does not fire. + +Rewrite: open / hyphenated. + +Tokenizer: hyphenation splits GPT-2 pieces. VERIFIED locally for `well known` / `well-known`. + +Whitespace collapse: hyphens are not spaces. Survives. + +EXTERNAL-VALIDATION-ONLY: CMOS hyphenates compound modifiers before a noun. Predicative forms stay open. + +## Family 8 — parenthetical conjunctive adverb + +Construction: `parenthetical_conjunctive_adverb`. + +Closed adverbs: `however`, `therefore`, `moreover`, and the listed set. + +Precondition: previous character alphabetic; drop matches `, however, `; insert matches ` however ` and does not fire on already-comma forms. + +Rewrite: `, however, ` / ` however `. + +Whitespace collapse: commas remain. Survives. + +## Family 9 — coordinating-conjunction comma + +Construction: `coordinating_conjunction_comma`. + +Closed conjunctions: `and`, `but`, `or`. + +Precondition: previous character alphabetic and next character alphabetic. Insert additionally requires a determiner follower (`the|a|an|this|these|those`) so `you and I` and `cats and dogs` do not gain a comma. Digit-comma lists such as `1, and 2` are blocked. + +Rewrite: `, and ` / ` and ` (same for `but` / `or`). + +Tokenizer: GPT-2 `failed and the replica` versus `failed, and the replica` differs by the comma token. VERIFIED on the frozen GPT-2 revision. + +Whitespace collapse: comma is not space. Survives. + +Safety: insert is a style comma before a determiner, not a full independent-clause parser. NP coordinations of the form `X and the Y` can still receive a comma. That is semantically conservative and style-marked. Stage B treats density as the first metric and may reject the insert direction if natural prose over-fires. + +Not admitted: `nor` / `yet` / `so` (adverb/conjunction ambiguity). Running-text `and` to `&` remains REJECTED (CMOS/AP: ampersand is not prose-equivalent). diff --git a/docs/cycle7/literature.md b/docs/cycle7/literature.md index fd691e84..641f3b3b 100644 --- a/docs/cycle7/literature.md +++ b/docs/cycle7/literature.md @@ -33,4 +33,18 @@ VERIFIED sanitizer fate: HYPOTHESIS. Unambiguous contractions, attested hyphenation, and typographic apostrophes can destroy some observation windows. Whether they destroy enough windows on 64-token TinyDev GPT-2 text is a Cycle 7 measurement. Family 1 detector attachment on seed `810000` was INSUFFICIENT_EVIDENCE because natural site density was too low. +EXTERNAL-VALIDATION-ONLY. Optional complementizer *that* is a high-frequency English reduction (Jaeger, *Cognitive Psychology* 2010, UID/information-density accounts). Cycle 7 admits only a closed pronoun+verb list plus object-relative `DET+N that PRON`. That literature is not a local density measurement. + +EXTERNAL-VALIDATION-ONLY. CMOS hyphenates compound modifiers before a noun (`well-known method`) and leaves predicative forms open. Family 7 encodes that bound, not a generic hyphenation whitelist. + +VERIFIED tokenizer effects added in catalog v3 on the same frozen GPT-2 revision: + +- `Hello. World` → `[15496, 13, 2159]`; `Hello.\nWorld` → `[15496, 13, 198, 10603]`. +- `I think that the protocol works` versus `I think the protocol works` differs by the `that` piece. +- `failed and the replica` versus `failed, and the replica` differs by the comma piece. + +HYPOTHESIS. Sentence-boundary newline survives `whitespace-collapse-v1` because that sanitizer preserves LF. A wrap/reflow sanitizer is not in the frozen Cycle 7 suite. + REJECTED as a Cycle 7 direction: adding more U+0020 spaces to chase 7/192 → 0/192 on spent confirmation rows. + +REJECTED: running-text `and` to `&` (not prose-equivalent under CMOS/AP). U+2026 ellipsis NFKC-maps to `...`. U+2009 / U+202F NFKC-map to space. diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index af8b35a3..e7e82b5a 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-v1` (`fuckmark/cycle7/ledger.py`). +Ledger identity: `cycle7-seed-ledger-v2` (`fuckmark/cycle7/ledger.py`). -Seeds were assigned **before** Cycle 7 detector scoring. +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. ## Spent (forbidden) @@ -17,10 +17,13 @@ Seeds were assigned **before** Cycle 7 detector scoring. | Role | Seed | May score detectors? | | --- | --- | --- | -| Exploratory development (Stage A) | 810000 | yes, development only | -| Validation development (Stage B) | 820000 | only after Stage A family freeze; not in this PR's detector run | +| Exploratory development (Stage A) | 810000 | yes, development only; do not keep expanding rules against it | +| Exploratory development / rule construction (Stage B1) | 860000 | yes, development only; frozen topic `independent replication` | +| Validation development | 820000 | only after a Stage B catalog freeze; unused at catalog-v3 construction | | Confirmation reserved | 830000, 840000, 850000 | **no** until a later frozen confirmation protocol | -Do not promote 810000 or 820000 into confirmation after seeing scores. +Do not promote 810000, 820000, or 860000 into confirmation after seeing scores. -Stage A generation uses 810000 with pair stride 32, matching TinyDev pairing, one pair per domain, topic `reproducibility` chosen without a detector look. +Stage A generation used 810000 with pair stride 32, matching TinyDev pairing, one pair per domain, topic `reproducibility` chosen without a detector look. + +Stage B1 generation uses 860000 with the same pairing rule and topic `independent replication`. Rule-construction generation must call `assert_rule_construction_seed(860000)`. Seed 810000 remains an exploratory seed for Stage A rescoring only. diff --git a/fuckmark/cycle7/__init__.py b/fuckmark/cycle7/__init__.py index 19cf6f7a..3c5a81dd 100644 --- a/fuckmark/cycle7/__init__.py +++ b/fuckmark/cycle7/__init__.py @@ -1,13 +1,18 @@ from __future__ import annotations from .ledger import ( + CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES, CYCLE7_CONFIRMATION_RESERVED_SEED_BASES, CYCLE7_EXPLORATORY_SEED_BASE, + CYCLE7_EXPLORATORY_SEED_BASES, CYCLE7_LEDGER_VERSION, + CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_B1_TOPIC, CYCLE7_VALIDATION_SEED_BASE, SPENT_CONFIRMATION_SEED_BASES, SPENT_DEVELOPMENT_SEED_BASES, assert_development_seed, + assert_rule_construction_seed, ) from .registry import ( cycle7_combined_transform_registry, @@ -21,15 +26,20 @@ ) __all__ = [ + "CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES", "CYCLE7_CONFIRMATION_RESERVED_SEED_BASES", "CYCLE7_EXPLORATORY_SEED_BASE", + "CYCLE7_EXPLORATORY_SEED_BASES", "CYCLE7_LEDGER_VERSION", "CYCLE7_SANITIZER_VARIANT_IDS", + "CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE", + "CYCLE7_STAGE_B1_TOPIC", "CYCLE7_VALIDATION_SEED_BASE", "SPENT_CONFIRMATION_SEED_BASES", "SPENT_DEVELOPMENT_SEED_BASES", "WHITESPACE_COLLAPSE_VERSION", "assert_development_seed", + "assert_rule_construction_seed", "collapse_horizontal_ascii_whitespace", "cycle7_combined_transform_registry", "cycle7_durable_transform_registry", diff --git a/fuckmark/cycle7/density.py b/fuckmark/cycle7/density.py index 6c541c84..d2f90db8 100644 --- a/fuckmark/cycle7/density.py +++ b/fuckmark/cycle7/density.py @@ -5,29 +5,74 @@ from .registry import cycle7_durable_transform_registry +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) return tuple(candidate.rule_id for candidate in enumeration.candidates) def durable_density_row(sample_id: str, text: str) -> dict[str, object]: - rule_ids = durable_candidate_rule_ids(text) - compound_ids = tuple(rule_id for rule_id in rule_ids if rule_id.startswith("lexical-compound-")) - contraction_ids = tuple( - rule_id - for rule_id in rule_ids - if rule_id.startswith(("contract-", "expand-", "cycle7-contract-", "cycle7-expand-")) + registry = cycle7_durable_transform_registry() + enumeration = registry.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 + } + isolated = tuple( + candidate.rule_id for candidate in enumeration.candidates if candidate.candidate_id not in conflict_ids + ) + compound_ids = _prefix_ids(rule_ids, ("lexical-compound-",)) + contraction_ids = _prefix_ids( + rule_ids, + ("contract-", "expand-", "cycle7-contract-", "cycle7-expand-"), + ) + apostrophe_ids = _prefix_ids(rule_ids, ("lexical-apostrophe-",)) + format_ids = _prefix_ids(rule_ids, ("cycle7-format-",)) + discourse_ids = _prefix_ids(rule_ids, ("lexical-discourse-",)) + prenominal_ids = _prefix_ids(rule_ids, ("lexical-prenominal-",)) + complementizer_ids = _prefix_ids( + rule_ids, + ("cycle7-syntax-complementizer-", "cycle7-syntax-relative-"), ) - apostrophe_ids = tuple(rule_id for rule_id in rule_ids if rule_id.startswith("lexical-apostrophe-")) + parenthetical_ids = _prefix_ids(rule_ids, ("cycle7-syntax-parenthetical-",)) + coord_comma_ids = _prefix_ids(rule_ids, ("cycle7-syntax-coord-comma-",)) + tokenish = max(1, len(text.split())) return { "sample_id": sample_id, "candidate_count": len(rule_ids), + "isolated_candidate_count": len(isolated), + "conflict_pair_count": len(enumeration.conflicts), + "candidates_per_64_tokens": round(64.0 * len(rule_ids) / tokenish, 4), "compound_candidate_count": len(compound_ids), "contraction_candidate_count": len(contraction_ids), "apostrophe_candidate_count": len(apostrophe_ids), + "format_candidate_count": len(format_ids), + "discourse_comma_candidate_count": len(discourse_ids), + "prenominal_candidate_count": len(prenominal_ids), + "complementizer_candidate_count": len(complementizer_ids), + "parenthetical_candidate_count": len(parenthetical_ids), + "coord_comma_candidate_count": len(coord_comma_ids), + "protected_blocked_count": sum( + 1 for rejection in enumeration.rejections if rejection.reason.value == "protected_overlap" + ), + "quote_blocked_count": sum( + 1 for rejection in enumeration.rejections if rejection.reason.value == "quote_policy_blocked" + ), + "precondition_failed_count": sum( + 1 for rejection in enumeration.rejections if rejection.reason.value == "precondition_failed" + ), "rule_ids": rule_ids, "compound_rule_ids": compound_ids, "apostrophe_rule_ids": apostrophe_ids, + "format_rule_ids": format_ids, + "discourse_rule_ids": discourse_ids, + "prenominal_rule_ids": prenominal_ids, + "complementizer_rule_ids": complementizer_ids, + "parenthetical_rule_ids": parenthetical_ids, + "coord_comma_rule_ids": coord_comma_ids, } diff --git a/fuckmark/cycle7/durable_rules.py b/fuckmark/cycle7/durable_rules.py index 529416a4..18ce1dd9 100644 --- a/fuckmark/cycle7/durable_rules.py +++ b/fuckmark/cycle7/durable_rules.py @@ -10,13 +10,14 @@ zrd_forward_contraction_extension_rules, zrd_reverse_contraction_extension_rules, ) +from ..transforms.format_rules import FormatBoundaryRule from ..transforms.lexical_rules import LexicalConstruction, LexicalTemplateRule, development_lexical_rules from ..transforms.rules import LiteralTransformRule from ..transforms.schema import TransformFamily, TransformTier -from ..transforms.syntax_rules import development_syntax_rules +from ..transforms.syntax_rules import SyntaxConstruction, SyntaxTemplateRule, development_syntax_rules -CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v2" +CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v3" @dataclass(frozen=True, slots=True) @@ -365,6 +366,241 @@ def cycle7_typographic_apostrophe_rules() -> tuple[LexicalTemplateRule, ...]: ) +CYCLE7_PRENOMINAL_MODIFIER_PAIRS = ( + ("well known", "well-known"), + ("long term", "long-term"), + ("short term", "short-term"), + ("real world", "real-world"), + ("high level", "high-level"), + ("low level", "low-level"), + ("large scale", "large-scale"), + ("small scale", "small-scale"), + ("open source", "open-source"), + ("full time", "full-time"), + ("part time", "part-time"), + ("high quality", "high-quality"), + ("low cost", "low-cost"), + ("third party", "third-party"), + ("first order", "first-order"), + ("second order", "second-order"), + ("so called", "so-called"), + ("decision making", "decision-making"), + ("problem solving", "problem-solving"), + ("data driven", "data-driven"), +) + +CYCLE7_DISCOURSE_COMMA_MARKERS = ( + "However", + "Therefore", + "Moreover", + "Furthermore", + "Thus", + "Indeed", + "Meanwhile", + "Instead", + "Finally", + "Additionally", + "Consequently", + "Nevertheless", + "Nonetheless", + "Similarly", + "Specifically", + "Notably", + "Importantly", + "Subsequently", + "Conversely", + "Accordingly", + "Otherwise", + "In fact", +) + +CYCLE7_PARENTHETICAL_ADVERBS = ( + "however", + "therefore", + "moreover", + "instead", + "meanwhile", + "nevertheless", + "nonetheless", + "consequently", + "accordingly", + "similarly", +) + +CYCLE7_COORDINATING_CONJUNCTIONS = ( + "and", + "but", + "or", +) + + +def cycle7_prenominal_modifier_rules() -> tuple[LexicalTemplateRule, ...]: + rules: list[LexicalTemplateRule] = [] + for open_form, hyphen_form in CYCLE7_PRENOMINAL_MODIFIER_PAIRS: + slug = hyphen_form + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-prenominal-hyphenate-{slug}", + version="v1", + source=open_form, + replacement=hyphen_form, + construction=LexicalConstruction.ATTESTED_PRENOMINAL_HYPHEN_MODIFIER, + ) + ) + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-prenominal-open-{slug}", + version="v1", + source=hyphen_form, + replacement=open_form, + construction=LexicalConstruction.ATTESTED_PRENOMINAL_HYPHEN_MODIFIER, + ) + ) + return tuple(rules) + + +def cycle7_discourse_comma_rules() -> tuple[LexicalTemplateRule, ...]: + rules: list[LexicalTemplateRule] = [] + for marker in CYCLE7_DISCOURSE_COMMA_MARKERS: + slug = marker.casefold().replace(" ", "-") + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-discourse-drop-comma-{slug}", + version="v1", + source=f"{marker},", + replacement=marker, + construction=LexicalConstruction.SENTENCE_INITIAL_DISCOURSE_COMMA, + ) + ) + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-discourse-insert-comma-{slug}", + version="v1", + source=marker, + replacement=f"{marker},", + construction=LexicalConstruction.SENTENCE_INITIAL_DISCOURSE_COMMA, + ) + ) + return tuple(rules) + + +def cycle7_format_boundary_rules() -> tuple[FormatBoundaryRule, ...]: + rules: list[FormatBoundaryRule] = [] + for mark, name in ((".", "period"), ("?", "question"), ("!", "exclamation")): + rules.append( + FormatBoundaryRule.create( + rule_id=f"cycle7-format-sentence-{name}-newline", + version="v1", + source=f"{mark} ", + replacement=f"{mark}\n", + ) + ) + rules.append( + FormatBoundaryRule.create( + rule_id=f"cycle7-format-sentence-{name}-space", + version="v1", + source=f"{mark}\n", + replacement=f"{mark} ", + ) + ) + return tuple(rules) + + +def cycle7_complementizer_that_rules() -> tuple[SyntaxTemplateRule, ...]: + return ( + SyntaxTemplateRule.create( + rule_id="cycle7-syntax-complementizer-that-drop", + version="v1", + source=" that ", + replacement=" ", + construction=SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_DROP, + whole_word=False, + preserve_simple_case=False, + block_all_caps=True, + ), + SyntaxTemplateRule.create( + rule_id="cycle7-syntax-complementizer-that-insert", + version="v1", + source="I think ", + replacement="I think that ", + construction=SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_INSERT, + whole_word=False, + preserve_simple_case=True, + block_all_caps=True, + ), + SyntaxTemplateRule.create( + rule_id="cycle7-syntax-relative-that-drop", + version="v1", + source=" that ", + replacement=" ", + construction=SyntaxConstruction.BOUNDED_OBJECT_RELATIVE_THAT_DROP, + whole_word=False, + preserve_simple_case=False, + block_all_caps=True, + ), + ) + + +def cycle7_parenthetical_adverb_rules() -> tuple[SyntaxTemplateRule, ...]: + rules: list[SyntaxTemplateRule] = [] + for adverb in CYCLE7_PARENTHETICAL_ADVERBS: + rules.append( + SyntaxTemplateRule.create( + rule_id=f"cycle7-syntax-parenthetical-drop-{adverb}", + version="v1", + source=f", {adverb}, ", + replacement=f" {adverb} ", + construction=SyntaxConstruction.PARENTHETICAL_CONJUNCTIVE_ADVERB, + whole_word=False, + preserve_simple_case=True, + block_all_caps=True, + ) + ) + rules.append( + SyntaxTemplateRule.create( + rule_id=f"cycle7-syntax-parenthetical-insert-{adverb}", + version="v1", + source=f" {adverb} ", + replacement=f", {adverb}, ", + construction=SyntaxConstruction.PARENTHETICAL_CONJUNCTIVE_ADVERB, + whole_word=False, + preserve_simple_case=True, + block_all_caps=True, + ) + ) + return tuple(rules) + + +def cycle7_coordinating_conjunction_comma_rules() -> tuple[SyntaxTemplateRule, ...]: + rules: list[SyntaxTemplateRule] = [] + for conjunction in CYCLE7_COORDINATING_CONJUNCTIONS: + rules.append( + SyntaxTemplateRule.create( + rule_id=f"cycle7-syntax-coord-comma-drop-{conjunction}", + version="v1", + source=f", {conjunction} ", + replacement=f" {conjunction} ", + construction=SyntaxConstruction.COORDINATING_CONJUNCTION_COMMA, + whole_word=False, + preserve_simple_case=False, + block_all_caps=True, + ) + ) + rules.append( + SyntaxTemplateRule.create( + rule_id=f"cycle7-syntax-coord-comma-insert-{conjunction}", + version="v1", + source=f" {conjunction} ", + replacement=f", {conjunction} ", + construction=SyntaxConstruction.COORDINATING_CONJUNCTION_COMMA, + whole_word=False, + preserve_simple_case=False, + block_all_caps=True, + ) + ) + return tuple(rules) + + def cycle7_durable_rules() -> tuple[object, ...]: return ( *development_forward_contraction_rules(), @@ -375,7 +611,13 @@ def cycle7_durable_rules() -> tuple[object, ...]: *cycle7_bounded_copula_rules(), *cycle7_orthography_rules(), *cycle7_compound_rules(), + *cycle7_prenominal_modifier_rules(), *cycle7_typographic_apostrophe_rules(), + *cycle7_discourse_comma_rules(), + *cycle7_format_boundary_rules(), + *cycle7_complementizer_that_rules(), + *cycle7_parenthetical_adverb_rules(), + *cycle7_coordinating_conjunction_comma_rules(), *development_lexical_rules(), *development_syntax_rules(), ) diff --git a/fuckmark/cycle7/fixtures.py b/fuckmark/cycle7/fixtures.py index 064afe75..3ab5cc7a 100644 --- a/fuckmark/cycle7/fixtures.py +++ b/fuckmark/cycle7/fixtures.py @@ -25,6 +25,33 @@ "State of the art methods stay face to face with case-by-case review." ) +FORMAT_RICH = ( + "Careful testing matters before any claim becomes knowledge. " + "Independent replication remains required after the first success. " + "Does this protocol still hold? Next measurements decide. " + "Stop! Further edits stay local." +) + +COMPLEMENTIZER_RICH = ( + "I think that the protocol works, and we believe that a replica will fail. " + "They know that this check is required. I think the second copy is weaker." +) + +PRENOMINAL_RICH = ( + "A well known method needs long term logs and high quality checks. " + "Open source tools help large scale runs." +) + +PARENTHETICAL_RICH = ( + "The first replica failed, however, the second replica passed. " + "The threshold stayed fixed, therefore, the decision remained." +) + +COORD_COMMA_RICH = ( + "The first replica failed, and the second replica passed. " + "The logs were short but the notes were complete or the run stopped." +) + QUOTE_INTERIOR = 'He answered, "They are not finished and we do not agree."' AMBIGUOUS_NEGATIVES = ( @@ -56,5 +83,17 @@ def fixture_samples() -> tuple[tuple[str, str], ...]: ) +def stage_b_fixture_samples() -> tuple[tuple[str, str], ...]: + return ( + ("format-rich", FORMAT_RICH), + ("complementizer-rich", COMPLEMENTIZER_RICH), + ("prenominal-rich", PRENOMINAL_RICH), + ("parenthetical-rich", PARENTHETICAL_RICH), + ("coord-comma-rich", COORD_COMMA_RICH), + ("contraction-rich", CONTRACTION_RICH), + ("contraction-sparse", CONTRACTION_SPARSE), + ) + + 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 d27f65a6..763e00a7 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -6,10 +6,11 @@ from ..hashing import sha256_json -CYCLE7_LEDGER_VERSION = "cycle7-seed-ledger-v1" +CYCLE7_LEDGER_VERSION = "cycle7-seed-ledger-v2" CYCLE7_EXPLORATORY_ROLE = "exploratory_development" CYCLE7_VALIDATION_ROLE = "validation_development" CYCLE7_CONFIRMATION_RESERVED_ROLE = "confirmation_reserved" +CYCLE7_RULE_CONSTRUCTION_ROLE = "rule_construction_development" SPENT_CONFIRMATION_SEED_BASES = (760_000, 770_000, 780_000) SPENT_DEVELOPMENT_SEED_BASES = (720_000, 730_000) @@ -23,8 +24,14 @@ BLOCKED_HISTORIC_SEED_BASES = (401_000, 402_000, 500_000, 61000) CYCLE7_EXPLORATORY_SEED_BASE = 810_000 +CYCLE7_STAGE_A_EXPLORATORY_SEED_BASE = 810_000 +CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE = 860_000 +CYCLE7_EXPLORATORY_SEED_BASES = (810_000, 860_000) +CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000,) +CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (860_000,) CYCLE7_VALIDATION_SEED_BASE = 820_000 CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) +CYCLE7_STAGE_B1_TOPIC = "independent replication" _ALL_BLOCKED = frozenset( ( @@ -44,16 +51,24 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "blocked_profile_seed_bases": list(BLOCKED_PROFILE_SEED_BASES), "blocked_historic_seed_bases": list(BLOCKED_HISTORIC_SEED_BASES), "exploratory_development_seed_base": CYCLE7_EXPLORATORY_SEED_BASE, + "exploratory_development_seed_bases": list(CYCLE7_EXPLORATORY_SEED_BASES), + "used_exploratory_development_seed_bases": list(CYCLE7_USED_EXPLORATORY_SEED_BASES), + "active_exploratory_development_seed_bases": list(CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES), + "stage_b1_exploratory_seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + "stage_b1_topic": CYCLE7_STAGE_B1_TOPIC, "validation_development_seed_base": CYCLE7_VALIDATION_SEED_BASE, "confirmation_reserved_seed_bases": list(CYCLE7_CONFIRMATION_RESERVED_SEED_BASES), "selection_rule": ( "Confirmation-reserved seeds were chosen as unused 10k blocks " "without inspecting detector outcomes. Do not promote exploratory " - "or validation seeds into confirmation after seeing scores." + "or validation seeds into confirmation after seeing scores. " + "Seed 860000 and topic 'independent replication' were frozen before " + "any Stage B generation or detector look." ), "spent_corpus_rule": ( "Do not use 720000, 730000, 760000, 770000, or 780000 as " - "Cycle 7 development, tuning, or confirmation data." + "Cycle 7 development, tuning, or confirmation data. " + "Do not keep expanding transform rules against 810000." ), } @@ -64,7 +79,7 @@ def cycle7_seed_ledger_hash() -> str: def role_for_seed_base(seed_base: int) -> str | None: require_int("seed_base", seed_base) - if seed_base == CYCLE7_EXPLORATORY_SEED_BASE: + if seed_base in CYCLE7_EXPLORATORY_SEED_BASES: return CYCLE7_EXPLORATORY_ROLE if seed_base == CYCLE7_VALIDATION_SEED_BASE: return CYCLE7_VALIDATION_ROLE @@ -85,9 +100,16 @@ def assert_development_seed(seed_base: int, *, role: str) -> None: if expected == CYCLE7_CONFIRMATION_RESERVED_ROLE or role == CYCLE7_CONFIRMATION_RESERVED_ROLE: raise ValueError("confirmation-reserved seeds must not be used for development") if role == CYCLE7_EXPLORATORY_ROLE and expected != CYCLE7_EXPLORATORY_ROLE: - raise ValueError("seed_base is not the Cycle 7 exploratory development seed") + raise ValueError("seed_base is not a Cycle 7 exploratory development seed") if role == CYCLE7_VALIDATION_ROLE and expected != CYCLE7_VALIDATION_ROLE: raise ValueError("seed_base is not the Cycle 7 validation development seed") + if role == CYCLE7_RULE_CONSTRUCTION_ROLE: + if seed_base not in CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES: + raise ValueError("seed_base is not an active Cycle 7 rule-construction exploratory seed") + + +def assert_rule_construction_seed(seed_base: int) -> None: + assert_development_seed(seed_base, role=CYCLE7_RULE_CONSTRUCTION_ROLE) def assert_seed_not_spent(seed_base: int) -> None: @@ -98,7 +120,7 @@ def assert_seed_not_spent(seed_base: int) -> None: def ledger_roles() -> Mapping[str, Sequence[int]]: return { - CYCLE7_EXPLORATORY_ROLE: (CYCLE7_EXPLORATORY_SEED_BASE,), + CYCLE7_EXPLORATORY_ROLE: CYCLE7_EXPLORATORY_SEED_BASES, CYCLE7_VALIDATION_ROLE: (CYCLE7_VALIDATION_SEED_BASE,), CYCLE7_CONFIRMATION_RESERVED_ROLE: CYCLE7_CONFIRMATION_RESERVED_SEED_BASES, } diff --git a/fuckmark/cycle7/registry.py b/fuckmark/cycle7/registry.py index f72f47ce..f0517513 100644 --- a/fuckmark/cycle7/registry.py +++ b/fuckmark/cycle7/registry.py @@ -11,8 +11,8 @@ from .durable_rules import cycle7_durable_rules -CYCLE7_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v2" -CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v1" +CYCLE7_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v3" +CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v2" def cycle7_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py new file mode 100644 index 00000000..96aac375 --- /dev/null +++ b/fuckmark/cycle7/stage_b.py @@ -0,0 +1,144 @@ +from __future__ import annotations + +from collections.abc import Mapping, Sequence + +from ..hashing import sha256_json +from .density import durable_density_table +from .instrumentation import measure_arm +from .registry import cycle7_durable_transform_registry + + +CYCLE7_STAGE_B_DECISION_VERSION = "cycle7-stage-b-decision-v1" +PROMISING_DEVELOPMENT = "PROMISING_DEVELOPMENT" +INSUFFICIENT_EVIDENCE = "INSUFFICIENT_EVIDENCE" +REJECTED = "REJECTED" + + +def summarize_density_rows(rows: Sequence[Mapping[str, object]]) -> dict[str, object]: + if not rows: + raise ValueError("density rows must not be empty") + counts = tuple(int(row["candidate_count"]) for row in rows) + format_counts = tuple(int(row["format_candidate_count"]) for row in rows) + complementizer_counts = tuple(int(row["complementizer_candidate_count"]) for row in rows) + discourse_counts = tuple(int(row["discourse_comma_candidate_count"]) for row in rows) + prenominal_counts = tuple(int(row["prenominal_candidate_count"]) for row in rows) + 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) + return { + "sample_count": len(rows), + "mean_candidate_count": sum(counts) / len(counts), + "min_candidate_count": min(counts), + "max_candidate_count": max(counts), + "mean_format_candidate_count": sum(format_counts) / len(format_counts), + "mean_complementizer_candidate_count": sum(complementizer_counts) / len(complementizer_counts), + "mean_discourse_comma_candidate_count": sum(discourse_counts) / len(discourse_counts), + "mean_prenominal_candidate_count": sum(prenominal_counts) / len(prenominal_counts), + "mean_parenthetical_candidate_count": sum(parenthetical_counts) / len(parenthetical_counts), + "mean_coord_comma_candidate_count": sum(coord_comma_counts) / len(coord_comma_counts), + "zero_candidate_rows": sum(count == 0 for count in counts), + } + + +def classify_stage_b_density( + *, + density_summary: Mapping[str, object], + collapsed_intact_mean: float | None = None, + source_intact_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_coord = float(density_summary.get("mean_coord_comma_candidate_count", 0.0)) + residual_mean = mean_candidates - mean_format + punctuation_mean = mean_format + mean_coord + reasons: list[str] = [] + if mean_candidates >= 8: + reasons.append("mean durable candidate count is at least 8 per sample") + elif mean_candidates >= 4: + reasons.append("mean durable candidate count rose above the Stage A one-to-three site regime") + else: + reasons.append("mean durable candidate count remains too low to replace Cycle 6 spacing") + if residual_mean < 2 and mean_format >= 2: + reasons.append( + "most of the new density is sentence-boundary formatting rather than lexical/syntactic sites" + ) + if mean_coord >= 2 and mean_coord >= residual_mean * 0.5: + reasons.append( + "coordinating-conjunction commas supply a large share of non-format density" + ) + if collapsed_intact_mean is not None and source_intact_mean is not None: + if collapsed_intact_mean <= source_intact_mean * 0.5: + reasons.append("collapsed intact root windows dropped by at least half versus the source") + else: + reasons.append("collapsed intact root windows remain high relative to the source") + if mean_candidates < 4: + decision = INSUFFICIENT_EVIDENCE + elif collapsed_intact_mean is not None and source_intact_mean is not None and collapsed_intact_mean > source_intact_mean * 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_B_DECISION_VERSION, + "decision": decision, + "reasons": tuple(reasons), + "mean_candidate_count": mean_candidates, + "mean_format_candidate_count": mean_format, + "mean_coord_comma_candidate_count": mean_coord, + "mean_nonformat_candidate_count": residual_mean, + "mean_punctuation_candidate_count": punctuation_mean, + "notes": ( + "Stage B is development-only. Seeds 830000/840000/850000 were not inspected. " + "Seed 820000 remains unused validation until a catalog freeze." + ), + } + return payload + + +def density_artifact( + 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-b-density-v1", + "seed_base": seed_base, + "durable_catalog_version": catalog_version, + "detector_access_used_for_selection": False, + "rows": rows, + "summary": summary, + "decision": classify_stage_b_density(density_summary=summary), + } + return {**payload, "artifact_hash": sha256_json({k: v for k, v in payload.items() if k != "artifact_hash"})} + + +def geometry_intact_means( + samples: Sequence[Mapping[str, object]], + tokenizer, + tokenizer_identity_hash: str, +) -> dict[str, float]: + registry = cycle7_durable_transform_registry() + intact = [] + collapsed_intact = [] + selected = [] + for sample in samples: + measurement = measure_arm( + arm_id="cycle7_durable", + source_sample_id=str(sample["sample_id"]), + source_text=str(sample["text"]), + registry=registry, + tokenizer=tokenizer, + tokenizer_identity_hash=tokenizer_identity_hash, + ) + intact.append(measurement.intact_window_count) + collapsed_intact.append(measurement.collapsed_intact_window_count) + selected.append(measurement.selected_count) + n = len(samples) + return { + "mean_selected_count": sum(selected) / n, + "mean_intact_window_count": sum(intact) / n, + "mean_collapsed_intact_window_count": sum(collapsed_intact) / n, + } diff --git a/fuckmark/cycle7_stage_b_hf.py b/fuckmark/cycle7_stage_b_hf.py new file mode 100644 index 00000000..ddf8d86b --- /dev/null +++ b/fuckmark/cycle7_stage_b_hf.py @@ -0,0 +1,233 @@ +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from typing import Any + +from .config import canonical_json_text +from .corpus.schema import CorpusDomain, WatermarkLabel +from .corpus.tiny_dev import TINY_DEV_TARGET_LENGTH +from .corpus.tiny_dev_generation import TINY_DEV_DEFAULT_MAX_ATTEMPTS, TINY_DEV_PAIR_SEED_STRIDE +from .cycle7.compare import ( + CYCLE6_SPACING_ARM_ID, + CYCLE7_COMBINED_ARM_ID, + CYCLE7_DURABLE_ARM_ID, + compare_arms_on_text, + summarize_arm, +) +from .cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from .cycle7.ledger import ( + CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_B1_TOPIC, + assert_rule_construction_seed, +) +from .cycle7.stage_b import classify_stage_b_density, density_artifact, geometry_intact_means +from .cycle7_stage_a_hf import ( + _STAGE_A_TEMPLATES, + _adapter_and_tokenizer, + _build_detector_artifact, + _evaluate_samples, +) +from .durable_io import write_canonical_json_fsynced +from .hashing import sha256_json, sha256_text +from .tiny_dev_corpus_hf import HuggingFaceTinyDevBackend + + +CYCLE7_STAGE_B_DETECTOR_VERSION = "cycle7-stage-b-detector-compare-v1" + + +def _generate_stage_b1_samples(backend: HuggingFaceTinyDevBackend, seed_base: int) -> tuple[dict[str, object], ...]: + assert_rule_construction_seed(seed_base) + samples: list[dict[str, object]] = [] + for pair_index, domain in enumerate(CorpusDomain): + prompt = _STAGE_A_TEMPLATES[domain].format(topic=CYCLE7_STAGE_B1_TOPIC) + pair_seed_base = seed_base + pair_index * TINY_DEV_PAIR_SEED_STRIDE + accepted = None + for attempt in range(TINY_DEV_DEFAULT_MAX_ATTEMPTS): + seed = pair_seed_base + attempt + control = backend.generate(prompt, seed, watermarked=False) + watermarked = backend.generate(prompt, seed, watermarked=True) + if len(control.continuation_token_ids) != TINY_DEV_TARGET_LENGTH: + continue + if len(watermarked.continuation_token_ids) != TINY_DEV_TARGET_LENGTH: + continue + if control.text == watermarked.text: + continue + accepted = (seed, control, watermarked) + break + if accepted is None: + raise RuntimeError(f"Cycle 7 Stage B1 failed to generate a pair for {domain.value}") + seed, control, watermarked = accepted + for label, generated in ( + (WatermarkLabel.UNWATERMARKED, control), + (WatermarkLabel.WATERMARKED, watermarked), + ): + sample_id = f"cycle7-stage-b1-{domain.value}-{label.value}" + samples.append( + { + "sample_id": sample_id, + "domain": domain.value, + "label": label.value, + "prompt": prompt, + "seed": seed, + "text": generated.text, + "text_sha256": sha256_text(generated.text), + "text_only_token_ids": generated.text_only_token_ids, + } + ) + return tuple(samples) + + +def _geometry_artifact( + samples: tuple[dict[str, object], ...], + tokenizer: Any, + identity_hash: str, +) -> dict[str, object]: + rows = [] + for sample in samples: + arms = compare_arms_on_text( + source_sample_id=str(sample["sample_id"]), + source_text=str(sample["text"]), + tokenizer=tokenizer, + tokenizer_identity_hash=identity_hash, + ) + rows.append( + { + "sample_id": sample["sample_id"], + "label": sample["label"], + "domain": sample["domain"], + "arms": {arm_id: summarize_arm(measurement) for arm_id, measurement in arms.items()}, + } + ) + durable_samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples + ) + intact = geometry_intact_means(durable_samples, tokenizer, identity_hash) + payload = { + "algorithm_version": "cycle7-stage-b-geometry-v1", + "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, + "detector_access_used_for_selection": False, + "rows": tuple(rows), + "durable_intact_means": intact, + "arm_ids": (CYCLE6_SPACING_ARM_ID, CYCLE7_DURABLE_ARM_ID, CYCLE7_COMBINED_ARM_ID), + } + return {**payload, "artifact_hash": sha256_json({k: v for k, v in payload.items() if k != "artifact_hash"})} + + +def run_stage_b1( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_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"]) != CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE: + raise ValueError("Stage B1 sample file seed_base does not match the frozen ledger") + else: + samples = _generate_stage_b1_samples(backend, CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) + density_samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples + ) + density = density_artifact( + density_samples, + seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + geometry = _geometry_artifact(samples, tokenizer, identity_hash) + density_decision = classify_stage_b_density( + density_summary=density["summary"], + collapsed_intact_mean=float(geometry["durable_intact_means"]["mean_collapsed_intact_window_count"]), + source_intact_mean=float(geometry["durable_intact_means"]["mean_intact_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_B_DETECTOR_VERSION, + "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + "stage": "B1", + "topic": CYCLE7_STAGE_B1_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, + } + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-b") + parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") + parser.add_argument( + "--output-dir", + type=Path, + default=Path("evidence/cycle7-stage-b-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) + args = parser.parse_args(argv) + skip_detector = not args.with_detector + bundle = run_stage_b1( + 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-b1-samples-v1", + "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + "topic": CYCLE7_STAGE_B1_TOPIC, + "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 7ed00755..7534df24 100644 --- a/fuckmark/transforms/cycle7_quote_policy.py +++ b/fuckmark/transforms/cycle7_quote_policy.py @@ -3,6 +3,7 @@ from collections.abc import Sequence from typing import TYPE_CHECKING, Any +from .format_rules import FormatBoundaryRule from .lexical_rules import LexicalTemplateRule from .quote_policy import ( QUOTE_SAFE_SURFACE_POLICY_ID, @@ -40,8 +41,12 @@ "cycle7-contract-", "cycle7-expand-", "cycle7-ortho-", + "cycle7-format-", + "cycle7-syntax-", "lexical-compound-", + "lexical-prenominal-", "lexical-apostrophe-", + "lexical-discourse-", "lexical-", "syntax-", ) @@ -50,13 +55,15 @@ def is_cycle7_quote_durable_rule(rule: object) -> bool: if isinstance(rule, (GeneralWordLeadingSpacingRule, GeneralWordSpacingRule, SurfaceSpacingRule)): return False + if isinstance(rule, FormatBoundaryRule): + return True if isinstance(rule, LiteralTransformRule): if rule.family is TransformFamily.CONTRACTION: return getattr(rule, "rule_id", "").startswith( ("contract-", "expand-", "cycle7-contract-", "cycle7-expand-") ) return rule.family is TransformFamily.ORTHOGRAPHY and getattr(rule, "rule_id", "").startswith( - "cycle7-ortho-" + ("cycle7-ortho-", "cycle7-format-") ) return isinstance(rule, (LexicalTemplateRule, SyntaxTemplateRule)) diff --git a/fuckmark/transforms/format_rules.py b/fuckmark/transforms/format_rules.py new file mode 100644 index 00000000..e63386a3 --- /dev/null +++ b/fuckmark/transforms/format_rules.py @@ -0,0 +1,201 @@ +from __future__ import annotations + +import re +from dataclasses import dataclass +from enum import Enum + +from .._validation import require_bool, require_clean_string, require_sha256 +from ..hashing import sha256_json +from .rules import LiteralTransformRule +from .schema import TransformFamily, TransformTier + + +FORMAT_BOUNDARY_RULE_ALGORITHM_VERSION = "format-boundary-rule-v1" + +_SENTENCE_ABBREVIATIONS = frozenset( + { + "mr", + "mrs", + "ms", + "mz", + "dr", + "prof", + "sr", + "jr", + "vs", + "etc", + "fig", + "eq", + "vol", + "no", + "nos", + "inc", + "ltd", + "st", + "ave", + "blvd", + "dept", + "est", + "al", + "eg", + "ie", + "us", + "usa", + "uk", + "pm", + "am", + "jan", + "feb", + "mar", + "apr", + "jun", + "jul", + "aug", + "sep", + "sept", + "oct", + "nov", + "dec", + "ch", + "sec", + "pp", + "ed", + "eds", + "rev", + "ca", + "cf", + "nb", + "viz", + } +) + + +class FormatConstruction(str, Enum): + SENTENCE_BOUNDARY_NEWLINE = "sentence_boundary_newline" + + +def _word_before_punct(text: str, punct_index: int) -> str: + index = punct_index + while index > 0 and text[index - 1] in ".?!": + index -= 1 + end = index + while index > 0 and text[index - 1].isalpha(): + index -= 1 + return text[index:end] + + +def sentence_boundary_span_admissible(text: str, start: int, end: int) -> bool: + if start < 0 or end <= start or end > len(text): + return False + if end < len(text) and text[end] == "\n": + return False + if end >= len(text) or not text[end].isupper() or not text[end].isalpha(): + return False + if start > 0 and text[start - 1].isdigit(): + return False + if start > 0 and text[start - 1] in ".?!": + return False + word = _word_before_punct(text, start) + if not word: + return False + if len(word) == 1 and word.isalpha(): + return False + if word.casefold() in _SENTENCE_ABBREVIATIONS: + return False + return True + + +@dataclass(frozen=True, slots=True) +class FormatBoundaryRule(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("format boundary rules must use the orthography family") + if self.tier is not TransformTier.SURFACE: + raise ValueError("format boundary rules must use tier 1 surface") + if not isinstance(self.source, str) or not self.source or "\r" in self.source: + raise ValueError("source must be a non-empty string without carriage returns") + if not isinstance(self.replacement, str) or not self.replacement or "\r" in self.replacement: + raise ValueError("replacement must be a non-empty string without carriage returns") + mark = self.source[:1] + if mark not in ".?!": + raise ValueError("format boundary source must start with sentence punctuation") + forward = self.source == f"{mark} " and self.replacement == f"{mark}\n" + inverse = self.source == f"{mark}\n" and self.replacement == f"{mark} " + if not forward and not inverse: + raise ValueError("format boundary rules must swap a single space with a single newline after punctuation") + if self.source.casefold() == self.replacement.casefold(): + raise ValueError("source and replacement must differ") + 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("format boundary rules use an exact punctuation contract") + require_sha256("rule_hash", self.rule_hash) + if self.rule_hash != sha256_json(self._payload()): + raise ValueError("rule_hash does not match format boundary rule") + + def _payload(self) -> dict[str, object]: + return { + "algorithm_version": FORMAT_BOUNDARY_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.SENTENCE_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) -> FormatBoundaryRule: + payload = { + "algorithm_version": FORMAT_BOUNDARY_RULE_ALGORITHM_VERSION, + "rule_id": rule_id, + "version": version, + "family": TransformFamily.ORTHOGRAPHY.value, + "tier": TransformTier.SURFACE.value, + "source": source, + "replacement": replacement, + "construction": FormatConstruction.SENTENCE_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]: + mark = re.escape(self.source[0]) + if self.source.endswith("\n"): + return re.compile(rf"{mark}\n") + return re.compile(rf"{mark} ") + + def replacement_for(self, source_text: str) -> str: + mark = source_text[0] + if "\n" in self.replacement: + return f"{mark}\n" + return f"{mark} " + + 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("format precondition span is outside text") + if text[start:end] != self.source: + raise ValueError("format precondition span does not match rule source") + return sentence_boundary_span_admissible(text, start, end) diff --git a/fuckmark/transforms/lexical_rules.py b/fuckmark/transforms/lexical_rules.py index 0f9b2b24..03079bc1 100644 --- a/fuckmark/transforms/lexical_rules.py +++ b/fuckmark/transforms/lexical_rules.py @@ -16,6 +16,8 @@ class LexicalConstruction(str, Enum): SENTENCE_INITIAL_DISCOURSE_MARKER = "sentence_initial_discourse_marker" ATTESTED_OPEN_HYPHEN_COMPOUND = "attested_open_hyphen_compound" INWORD_TYPOGRAPHIC_APOSTROPHE = "inword_typographic_apostrophe" + SENTENCE_INITIAL_DISCOURSE_COMMA = "sentence_initial_discourse_comma" + ATTESTED_PRENOMINAL_HYPHEN_MODIFIER = "attested_prenominal_hyphen_modifier" @dataclass(frozen=True, slots=True) @@ -148,9 +150,15 @@ def precondition(self, text: str, start: int, end: int) -> bool: stripped = prefix.rstrip() if stripped and stripped[-1] not in ".?!": return False + elif self.construction is LexicalConstruction.SENTENCE_INITIAL_DISCOURSE_COMMA: + if not sentence_initial_discourse_comma_span_admissible(text, start, end, self.source, self.replacement): + return False elif self.construction is LexicalConstruction.ATTESTED_OPEN_HYPHEN_COMPOUND: if not attested_open_hyphen_compound_span_admissible(text, start, end): return False + elif self.construction is LexicalConstruction.ATTESTED_PRENOMINAL_HYPHEN_MODIFIER: + if not attested_prenominal_hyphen_modifier_span_admissible(text, start, end): + return False elif self.construction is LexicalConstruction.INWORD_TYPOGRAPHIC_APOSTROPHE: if not inword_typographic_apostrophe_span_admissible(text, start, end): return False @@ -174,6 +182,53 @@ def attested_open_hyphen_compound_span_admissible(text: str, start: int, end: in return "--" not in text[start:end] +_DISCOURSE_DEGREE_FOLLOWERS = frozenset( + {"much", "many", "long", "far", "little", "few", "often", "hard", "briefly"} +) + + +def _next_alpha_word(text: str, index: int) -> str: + cursor = index + while cursor < len(text) and not text[cursor].isalpha(): + cursor += 1 + begin = cursor + while cursor < len(text) and text[cursor].isalpha(): + cursor += 1 + return text[begin:cursor] + + +def sentence_initial_discourse_comma_span_admissible( + text: str, + start: int, + end: int, + source: str, + replacement: str, +) -> bool: + if end >= len(text) or not text[end].isspace(): + return False + prefix = text[:start] + stripped = prefix.rstrip() + if stripped and stripped[-1] not in ".?!": + return False + inserting_comma = "," not in source and "," in replacement + if inserting_comma: + follower = _next_alpha_word(text, end).casefold() + if follower in _DISCOURSE_DEGREE_FOLLOWERS: + return False + return True + + +def attested_prenominal_hyphen_modifier_span_admissible(text: str, start: int, end: int) -> bool: + if not attested_open_hyphen_compound_span_admissible(text, start, end): + return False + matched = text[start:end] + hyphenating = " " in matched and "-" not in matched + if not hyphenating: + return True + rest = text[end:] + return bool(re.match(r" [a-z]{2,}\b", rest)) + + def inword_typographic_apostrophe_span_admissible(text: str, start: int, end: int) -> bool: if start == 0 or end >= len(text): return False diff --git a/fuckmark/transforms/registry.py b/fuckmark/transforms/registry.py index 09df71eb..49aa4a54 100644 --- a/fuckmark/transforms/registry.py +++ b/fuckmark/transforms/registry.py @@ -6,6 +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 .hard_invariants import validate_hard_invariants from .lexical_audit import LexicalRuleAudit, LexicalRulePromotionError from .lexical_rules import LexicalTemplateRule, development_lexical_rules @@ -164,7 +165,7 @@ 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)) and not rule.precondition(text, start, end): + if isinstance(rule, (LexicalTemplateRule, SyntaxTemplateRule, FormatBoundaryRule)) 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/fuckmark/transforms/syntax_rules.py b/fuckmark/transforms/syntax_rules.py index 7f172d7a..9a880005 100644 --- a/fuckmark/transforms/syntax_rules.py +++ b/fuckmark/transforms/syntax_rules.py @@ -14,6 +14,40 @@ class SyntaxConstruction(str, Enum): SEMICOLON_CONJUNCTIVE_ADVERB_SPLIT = "semicolon_conjunctive_adverb_split" + BOUNDED_COMPLEMENTIZER_THAT_DROP = "bounded_complementizer_that_drop" + BOUNDED_COMPLEMENTIZER_THAT_INSERT = "bounded_complementizer_that_insert" + BOUNDED_OBJECT_RELATIVE_THAT_DROP = "bounded_object_relative_that_drop" + PARENTHETICAL_CONJUNCTIVE_ADVERB = "parenthetical_conjunctive_adverb" + COORDINATING_CONJUNCTION_COMMA = "coordinating_conjunction_comma" + + +_COMPLEMENTIZER_PRONOUNS = r"(?:I|you|we|they|he|she|it)" +_COMPLEMENTIZER_VERBS = ( + r"(?:think|thinks|thought|believe|believes|believed|say|says|said|know|knows|knew|" + r"hope|hopes|hoped|guess|guesses|guessed|suppose|supposes|supposed|claim|claims|claimed|" + r"argue|argues|argued|suggest|suggests|suggested|mean|means|meant|feel|feels|felt|" + r"expect|expects|expected|admit|admits|admitted|agree|agrees|agreed|" + r"conclude|concludes|concluded|note|notes|noted|mention|mentions|mentioned|" + r"explain|explains|explained|remember|remembers|remembered|decide|decides|decided|" + r"doubt|doubts|doubted|wish|wishes|wished|confirm|confirms|confirmed|" + r"suspect|suspects|suspected|predict|predicts|predicted|warn|warns|warned|" + r"promise|promises|promised|announce|announces|announced|declare|declares|declared|" + r"show|shows|showed|find|finds|found|realize|realizes|realized|" + r"understand|understands|understood|insist|insists|insisted)" +) +_COMPLEMENTIZER_STARTERS = ( + r"(?:the|a|an|this|these|those|it|they|we|I|you|he|she|there|my|our|their|his|her|not)" +) +_COMPLEMENTIZER_PREFIX = re.compile(rf"(?i:{_COMPLEMENTIZER_PRONOUNS}\s+{_COMPLEMENTIZER_VERBS})$") +_COMPLEMENTIZER_STARTER = re.compile(rf"(?i:{_COMPLEMENTIZER_STARTERS}\b)") +_COMPLEMENTIZER_INSERT_PATTERN = re.compile( + rf"(?i:(? re.Pattern[str]: + if self.construction is SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_INSERT: + return _COMPLEMENTIZER_INSERT_PATTERN literal = rf"(?ai:{re.escape(self.source)})" pattern = literal if self.whole_word: @@ -124,30 +160,67 @@ def pattern(self) -> re.Pattern[str]: pattern = rf"{pattern}(?!\w)" return re.compile(pattern) + def replacement_for(self, source_text: str) -> str: + if self.construction is SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_INSERT: + return f"{source_text}that " + 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("syntax precondition span is outside text") + if self.construction is SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_INSERT: + matched = text[start:end] + if not matched.endswith(" "): + return False + return _COMPLEMENTIZER_PREFIX.search(matched.rstrip()) is not None if text[start:end].casefold() != self.source.casefold(): raise ValueError("syntax precondition span does not match rule source") - if self.construction is not SyntaxConstruction.SEMICOLON_CONJUNCTIVE_ADVERB_SPLIT: - return False - prefix = text[:start] - line = prefix[prefix.rfind("\n") + 1 :].lstrip() - if re.match(r"(?:[-*+]\s|\d+[.)]\s)", line): - return False - boundary = max(prefix.rfind("."), prefix.rfind("?"), prefix.rfind("!"), prefix.rfind("\n")) - left_clause = prefix[boundary + 1 :].strip() - right = text[end:] - next_boundaries = tuple(index for mark in ".?!\n" if (index := right.find(mark)) >= 0) - right_clause = right[: min(next_boundaries)] if next_boundaries else right - words = re.compile(r"[A-Za-z]+(?:'[A-Za-z]+)?") - if len(words.findall(left_clause)) < self.minimum_clause_word_count: - return False - if len(words.findall(right_clause)) < self.minimum_clause_word_count: - return False - return True + if self.construction is SyntaxConstruction.SEMICOLON_CONJUNCTIVE_ADVERB_SPLIT: + prefix = text[:start] + line = prefix[prefix.rfind("\n") + 1 :].lstrip() + if re.match(r"(?:[-*+]\s|\d+[.)]\s)", line): + return False + boundary = max(prefix.rfind("."), prefix.rfind("?"), prefix.rfind("!"), prefix.rfind("\n")) + left_clause = prefix[boundary + 1 :].strip() + right = text[end:] + next_boundaries = tuple(index for mark in ".?!\n" if (index := right.find(mark)) >= 0) + right_clause = right[: min(next_boundaries)] if next_boundaries else right + words = re.compile(r"[A-Za-z]+(?:'[A-Za-z]+)?") + if len(words.findall(left_clause)) < self.minimum_clause_word_count: + return False + if len(words.findall(right_clause)) < self.minimum_clause_word_count: + return False + return True + if self.construction is SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_DROP: + prefix = text[:start].rstrip() + if _COMPLEMENTIZER_PREFIX.search(prefix) is None: + return False + return _COMPLEMENTIZER_STARTER.match(text[end:]) is not None + if self.construction is SyntaxConstruction.BOUNDED_OBJECT_RELATIVE_THAT_DROP: + prefix = text[:start].rstrip() + if _RELATIVE_PREFIX.search(prefix) is None: + return False + return _RELATIVE_FOLLOWER.match(text[end:]) is not None + if self.construction is SyntaxConstruction.PARENTHETICAL_CONJUNCTIVE_ADVERB: + if start == 0 or not text[start - 1].isalpha(): + return False + if end >= len(text): + return False + if "," in self.source: + return text[end].isalpha() or text[end].isspace() + return text[end].isalpha() + if self.construction is SyntaxConstruction.COORDINATING_CONJUNCTION_COMMA: + if start == 0 or not text[start - 1].isalpha(): + return False + if end >= len(text) or not text[end].isalpha(): + return False + inserting = "," not in self.source + if inserting: + return _COORD_INSERT_FOLLOWER.match(text[end:]) is not None + return True + return False def development_syntax_rules() -> tuple[SyntaxTemplateRule, ...]: diff --git a/tests/test_cycle7_ledger.py b/tests/test_cycle7_ledger.py index 1f60338d..6eed72de 100644 --- a/tests/test_cycle7_ledger.py +++ b/tests/test_cycle7_ledger.py @@ -1,7 +1,12 @@ from fuckmark.cycle7.ledger import ( + CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES, CYCLE7_CONFIRMATION_RESERVED_SEED_BASES, CYCLE7_EXPLORATORY_ROLE, CYCLE7_EXPLORATORY_SEED_BASE, + CYCLE7_EXPLORATORY_SEED_BASES, + CYCLE7_LEDGER_VERSION, + CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + CYCLE7_USED_EXPLORATORY_SEED_BASES, CYCLE7_VALIDATION_SEED_BASE, SPENT_CONFIRMATION_SEED_BASES, SPENT_DEVELOPMENT_SEED_BASES, @@ -18,7 +23,12 @@ 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-v2" assert CYCLE7_EXPLORATORY_SEED_BASE == 810000 + assert CYCLE7_EXPLORATORY_SEED_BASES == (810000, 860000) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000,) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (860000,) + assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_VALIDATION_SEED_BASE == 820000 assert CYCLE7_CONFIRMATION_RESERVED_SEED_BASES == (830000, 840000, 850000) blocked = { @@ -29,6 +39,8 @@ def test_spent_and_reserved_seeds_are_disjoint_and_documented() -> None: *CYCLE7_CONFIRMATION_RESERVED_SEED_BASES, } assert len(blocked) == 10 + assert 860000 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 new file mode 100644 index 00000000..8322e6b6 --- /dev/null +++ b/tests/test_cycle7_stage_b.py @@ -0,0 +1,89 @@ +from fuckmark.cycle7.density import durable_density_table +from fuckmark.cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from fuckmark.cycle7.fixtures import stage_b_fixture_samples +from fuckmark.cycle7.ledger import ( + CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES, + CYCLE7_EXPLORATORY_ROLE, + CYCLE7_EXPLORATORY_SEED_BASE, + CYCLE7_LEDGER_VERSION, + CYCLE7_RULE_CONSTRUCTION_ROLE, + CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_B1_TOPIC, + CYCLE7_USED_EXPLORATORY_SEED_BASES, + CYCLE7_VALIDATION_SEED_BASE, + assert_development_seed, + assert_rule_construction_seed, + cycle7_seed_ledger_payload, +) +from fuckmark.cycle7.registry import CYCLE7_COMBINED_REGISTRY_ID, CYCLE7_DURABLE_REGISTRY_ID +from fuckmark.cycle7.stage_b import ( + INSUFFICIENT_EVIDENCE, + PROMISING_DEVELOPMENT, + classify_stage_b_density, + density_artifact, + summarize_density_rows, +) +import pytest + + +def test_stage_b_catalog_and_ledger_identities() -> None: + assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v3" + assert CYCLE7_DURABLE_REGISTRY_ID == "cycle7-durable-catalog-v3" + assert CYCLE7_COMBINED_REGISTRY_ID == "cycle7-durable-plus-cycle6-spacing-v2" + assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v2" + assert CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 + assert CYCLE7_STAGE_B1_TOPIC == "independent replication" + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000,) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (860000,) + payload = cycle7_seed_ledger_payload() + assert payload["stage_b1_exploratory_seed_base"] == 860000 + assert payload["stage_b1_topic"] == "independent replication" + + +def test_rule_construction_admits_860000_and_blocks_spent_or_reserved_seeds() -> None: + assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) + assert_development_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) + assert_development_seed(CYCLE7_EXPLORATORY_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) + with pytest.raises(ValueError, match="rule-construction"): + assert_rule_construction_seed(CYCLE7_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"): + assert_rule_construction_seed(830000) + with pytest.raises(ValueError, match="confirmation-reserved"): + assert_rule_construction_seed(840000) + with pytest.raises(ValueError, match="confirmation-reserved"): + assert_rule_construction_seed(850000) + with pytest.raises(ValueError, match="exploratory"): + assert_development_seed(CYCLE7_VALIDATION_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) + with pytest.raises(ValueError, match="spent"): + assert_rule_construction_seed(760000) + + +def test_stage_b_density_classifier_on_construction_fixtures() -> None: + samples = tuple( + {"sample_id": sample_id, "text": text} for sample_id, text in stage_b_fixture_samples() + ) + rows = durable_density_table(samples) + summary = summarize_density_rows(rows) + assert summary["mean_candidate_count"] >= 4 + decision = classify_stage_b_density(density_summary=summary) + assert decision["decision"] in {PROMISING_DEVELOPMENT, INSUFFICIENT_EVIDENCE} + artifact = density_artifact( + samples, + seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + assert artifact["detector_access_used_for_selection"] is False + assert artifact["seed_base"] == 860000 + assert artifact["artifact_hash"] + + +def test_stage_b_classifier_keeps_low_density_as_insufficient() -> None: + summary = { + "mean_candidate_count": 1.5, + "mean_format_candidate_count": 0.5, + "mean_coord_comma_candidate_count": 0.0, + } + decision = classify_stage_b_density(density_summary=summary) + assert decision["decision"] == INSUFFICIENT_EVIDENCE diff --git a/tests/test_cycle7_stage_b_families.py b/tests/test_cycle7_stage_b_families.py new file mode 100644 index 00000000..7d75f843 --- /dev/null +++ b/tests/test_cycle7_stage_b_families.py @@ -0,0 +1,260 @@ +from fuckmark.cycle7.density import durable_density_row +from fuckmark.cycle7.durable_rules import ( + cycle7_complementizer_that_rules, + cycle7_coordinating_conjunction_comma_rules, + cycle7_discourse_comma_rules, + cycle7_format_boundary_rules, + cycle7_parenthetical_adverb_rules, + cycle7_prenominal_modifier_rules, +) +from fuckmark.cycle7.fixtures import ( + COMPLEMENTIZER_RICH, + COORD_COMMA_RICH, + FORMAT_RICH, + PARENTHETICAL_RICH, + PRENOMINAL_RICH, +) +from fuckmark.cycle7.registry import cycle7_durable_transform_registry +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.lexical_rules import LexicalConstruction +from fuckmark.transforms.schema import CandidateRejectionReason, InvariantStatus +from fuckmark.transforms.syntax_rules import SyntaxConstruction + + +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_format_boundary_rules_swap_space_and_newline() -> None: + rules = cycle7_format_boundary_rules() + assert len(rules) == 6 + assert all(rule._payload()["construction"] == FormatConstruction.SENTENCE_BOUNDARY_NEWLINE.value for rule in rules) + text = "Careful testing matters. Independent replication remains required." + output = _apply_rule(text, "cycle7-format-sentence-period-newline") + assert output == "Careful testing matters.\nIndependent replication remains required." + 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-format-sentence-period-space") + assert restored == text + assert validate_hard_invariants(text, output).status is InvariantStatus.PASS + + +def test_format_boundary_blocks_abbreviations_initials_digits_and_ellipsis() -> None: + registry = cycle7_durable_transform_registry() + blocked = ( + "Dr. Smith left early.", + "See Fig. 2 next.", + "Meet at 3. Next steps wait.", + "The U.S. Army stayed.", + "Wait... Next measurements decide.", + "Hello. world stays lowercase.", + ) + for text in blocked: + enumeration = registry.enumerate(text) + assert not any( + candidate.rule_id.startswith("cycle7-format-") for candidate in enumeration.candidates + ), text + + +def test_format_question_and_exclamation_boundaries_fire() -> None: + question = _apply_rule("Does this protocol still hold? Next measurements decide.", "cycle7-format-sentence-question-newline") + assert question == "Does this protocol still hold?\nNext measurements decide." + bang = _apply_rule("Stop! Further edits stay local.", "cycle7-format-sentence-exclamation-newline") + assert bang == "Stop!\nFurther edits stay local." + + +def test_format_density_on_format_rich_fixture() -> None: + row = durable_density_row("format-rich", FORMAT_RICH) + assert int(row["format_candidate_count"]) >= 3 + + +def test_complementizer_that_drop_and_insert_are_bounded() -> None: + rules = cycle7_complementizer_that_rules() + assert {rule.construction for rule in rules} == { + SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_DROP, + SyntaxConstruction.BOUNDED_COMPLEMENTIZER_THAT_INSERT, + SyntaxConstruction.BOUNDED_OBJECT_RELATIVE_THAT_DROP, + } + dropped = _apply_rule("I think that the protocol works.", "cycle7-syntax-complementizer-that-drop") + assert dropped == "I think the protocol works." + inserted = _apply_rule("I think the protocol works.", "cycle7-syntax-complementizer-that-insert") + assert inserted == "I think that the protocol works." + relative = _apply_rule("The protocol that we used stayed fixed.", "cycle7-syntax-relative-that-drop") + assert relative == "The protocol we used stayed fixed." + assert validate_hard_invariants("I think that the protocol works.", dropped).status is InvariantStatus.PASS + + +def test_complementizer_false_positives_are_blocked() -> None: + registry = cycle7_durable_transform_registry() + blocked = ( + "I found that book on the shelf.", + "So that the logs remain aligned.", + "The a that we mentioned is invalid.", + "I THINK THAT THE PROTOCOL WORKS.", + ) + for text in blocked: + enumeration = registry.enumerate(text) + assert not any( + candidate.rule_id.startswith("cycle7-syntax-complementizer-") + or candidate.rule_id.startswith("cycle7-syntax-relative-") + for candidate in enumeration.candidates + ), text + + +def test_complementizer_density_on_rich_fixture() -> None: + row = durable_density_row("complementizer-rich", COMPLEMENTIZER_RICH) + assert int(row["complementizer_candidate_count"]) >= 3 + + +def test_discourse_comma_drop_and_insert_are_sentence_initial() -> None: + assert all( + rule.construction is LexicalConstruction.SENTENCE_INITIAL_DISCOURSE_COMMA + for rule in cycle7_discourse_comma_rules() + ) + dropped = _apply_rule("However, the replica failed.", "lexical-discourse-drop-comma-however") + assert dropped == "However the replica failed." + inserted = _apply_rule("However the replica failed.", "lexical-discourse-insert-comma-however") + assert inserted == "However, the replica failed." + registry = cycle7_durable_transform_registry() + degree = registry.enumerate("However much evidence remains, the threshold stays.") + assert not any( + candidate.rule_id == "lexical-discourse-insert-comma-however" for candidate in degree.candidates + ) + mid = registry.enumerate("The replica failed however, the notes stayed.") + assert not any( + candidate.rule_id.startswith("lexical-discourse-") for candidate in mid.candidates + ) + + +def test_prenominal_hyphen_requires_a_following_noun() -> None: + assert all( + rule.construction is LexicalConstruction.ATTESTED_PRENOMINAL_HYPHEN_MODIFIER + for rule in cycle7_prenominal_modifier_rules() + ) + hyphenated = _apply_rule("A well known method stayed.", "lexical-prenominal-hyphenate-well-known") + assert hyphenated == "A well-known method stayed." + opened = _apply_rule("A well-known method stayed.", "lexical-prenominal-open-well-known") + assert opened == "A well known method stayed." + registry = cycle7_durable_transform_registry() + predicative = registry.enumerate("The method is well known.") + assert not any( + candidate.rule_id == "lexical-prenominal-hyphenate-well-known" for candidate in predicative.candidates + ) + row = durable_density_row("prenominal-rich", PRENOMINAL_RICH) + assert int(row["prenominal_candidate_count"]) >= 3 + + +def test_parenthetical_conjunctive_adverb_is_reversible() -> None: + assert all( + rule.construction is SyntaxConstruction.PARENTHETICAL_CONJUNCTIVE_ADVERB + for rule in cycle7_parenthetical_adverb_rules() + ) + dropped = _apply_rule( + "The first replica failed, however, the second replica passed.", + "cycle7-syntax-parenthetical-drop-however", + ) + assert dropped == "The first replica failed however the second replica passed." + restored = _apply_rule(dropped, "cycle7-syntax-parenthetical-insert-however") + assert restored == "The first replica failed, however, the second replica passed." + row = durable_density_row("parenthetical-rich", PARENTHETICAL_RICH) + assert int(row["parenthetical_candidate_count"]) >= 2 + + +def test_coordinating_comma_drop_and_gated_insert() -> None: + assert all( + rule.construction is SyntaxConstruction.COORDINATING_CONJUNCTION_COMMA + for rule in cycle7_coordinating_conjunction_comma_rules() + ) + dropped = _apply_rule( + "The first replica failed, and the second replica passed.", + "cycle7-syntax-coord-comma-drop-and", + ) + assert dropped == "The first replica failed and the second replica passed." + inserted = _apply_rule( + "The first replica failed and the second replica passed.", + "cycle7-syntax-coord-comma-insert-and", + ) + assert inserted == "The first replica failed, and the second replica passed." + registry = cycle7_durable_transform_registry() + np_coord = registry.enumerate("You and I stayed.") + assert not any( + candidate.rule_id == "cycle7-syntax-coord-comma-insert-and" for candidate in np_coord.candidates + ) + cats = registry.enumerate("Cats and dogs stayed outside.") + assert not any( + candidate.rule_id == "cycle7-syntax-coord-comma-insert-and" for candidate in cats.candidates + ) + numbered = registry.enumerate("Take 1, and 2 together.") + assert not any( + candidate.rule_id == "cycle7-syntax-coord-comma-drop-and" for candidate in numbered.candidates + ) + row = durable_density_row("coord-comma-rich", COORD_COMMA_RICH) + assert int(row["coord_comma_candidate_count"]) >= 2 + + +def test_stage_b_families_respect_protected_spans_and_quotes() -> None: + registry = cycle7_durable_transform_registry() + cases = ( + "Visit https://example.com/path. Continue afterwards.", + "On 2024-08-25 we do not change the timestamp.", + "Run `well known` as a literal command token.", + "Digest deadbeefcafebabe0123456789abcdef0123456789abcdef0123456789abcdef is fixed.", + ) + from fuckmark.transforms import ProtectedSpanExtractor + + for text in cases: + enumeration = registry.enumerate(text) + protected = ProtectedSpanExtractor().extract(text).spans + for candidate in enumeration.candidates: + assert all( + not (candidate.start < span.end and span.start < candidate.end) + for span in protected + ), (text, candidate.rule_id, candidate.source_text) + quoted = 'He said, "I think that the protocol works."' + enumeration = registry.enumerate(quoted) + selected = tuple( + candidate + for candidate in enumeration.candidates + if candidate.rule_id == "cycle7-syntax-complementizer-that-drop" + ) + assert selected + result = registry.apply(enumeration, (selected[0].candidate_id,)) + assert result.output_text.count('"') == quoted.count('"') + assert result.output_text.startswith('He said, "') + assert "I think the protocol works" in result.output_text + + +def test_gpt2_tokenization_changes_for_stage_b_channels() -> None: + from transformers import AutoTokenizer + + tokenizer = AutoTokenizer.from_pretrained( + "openai-community/gpt2", + revision="607a30d783dfa663caf39e06633721c8d4cfcd7e", + ) + pairs = ( + ("Hello. World", "Hello.\nWorld"), + ("I think that the protocol works", "I think the protocol works"), + ("The first replica failed and the second replica passed.", "The first replica failed, and the second replica passed."), + ("A well known method stayed.", "A well-known method stayed."), + ) + for left, right in pairs: + assert tokenizer.encode(left, add_special_tokens=False) != tokenizer.encode( + right, add_special_tokens=False + ) From c01861273b1aeacc10251a712178a5309282c76b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 20:49:21 +0000 Subject: [PATCH 2/7] Record Cycle 7 Stage B1 PROMISING_DEVELOPMENT on seed 860000. Catalog v3 durable edits survive whitespace collapse and cut collapse-surviving watermarked detections to 2/4 on the new exploratory corpus. Freeze validation seed 820000 topic before any disjoint look. Co-authored-by: Byte271 --- docs/cycle7/README.md | 4 +- docs/cycle7/seed-ledger.md | 2 + docs/cycle7/stage-b-decision.md | 87 +++++++++++ .../cycle7-stage-b-2026-08-25/decision.json | 1 + .../cycle7-stage-b-2026-08-25/density.json | 1 + .../detector-compare.json | 1 + .../cycle7-stage-b-2026-08-25/geometry.json | 1 + .../cycle7-stage-b-2026-08-25/samples.json | 1 + fuckmark/cycle7/__init__.py | 2 + fuckmark/cycle7/ledger.py | 6 +- fuckmark/cycle7/stage_b.py | 27 +++- fuckmark/cycle7_stage_b_hf.py | 137 ++++++++++++++---- tests/test_cycle7_stage_b.py | 24 +++ 13 files changed, 257 insertions(+), 37 deletions(-) create mode 100644 docs/cycle7/stage-b-decision.md create mode 100644 evidence/cycle7-stage-b-2026-08-25/decision.json create mode 100644 evidence/cycle7-stage-b-2026-08-25/density.json create mode 100644 evidence/cycle7-stage-b-2026-08-25/detector-compare.json create mode 100644 evidence/cycle7-stage-b-2026-08-25/geometry.json create mode 100644 evidence/cycle7-stage-b-2026-08-25/samples.json diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 814889d9..727c768f 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -78,9 +78,9 @@ Details: `docs/cycle7/stage-a-decision.md`. ## Stage B -Stage B is still development. Catalog `cycle7-durable-rule-catalog-v3` is measured first on density and geometry, then on detector scores, using new exploratory seed `860000`. Seed `820000` remains unseen validation. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. +Stage B1 on seed `860000` is **`PROMISING_DEVELOPMENT`**, not formal confirmation. Catalog v3 durable edits reduced collapse-surviving watermarked detections to **2/4** on that tiny corpus (Cycle 6 spacing returned to 4/4 after collapse). Details: `docs/cycle7/stage-b-decision.md`. -This is not Cycle 7 formal confirmation. +Seed `820000` remains disjoint validation with topic `held-out evaluation`. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. Not claimed: diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index e7e82b5a..ec706e82 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -27,3 +27,5 @@ Do not promote 810000, 820000, or 860000 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. Stage B1 generation uses 860000 with the same pairing rule and topic `independent replication`. Rule-construction generation must call `assert_rule_construction_seed(860000)`. Seed 810000 remains an exploratory seed for Stage A rescoring only. + +Validation generation, if run, uses 820000 with topic `held-out evaluation` and `assert_development_seed(820000, role=validation_development)`. That topic was frozen before validation generation. diff --git a/docs/cycle7/stage-b-decision.md b/docs/cycle7/stage-b-decision.md new file mode 100644 index 00000000..0ae861ec --- /dev/null +++ b/docs/cycle7/stage-b-decision.md @@ -0,0 +1,87 @@ +# Cycle 7 Stage B decision + +**Decision: `PROMISING_DEVELOPMENT`** + +This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Seed `820000` is reserved disjoint validation and was unused during Stage B1 rule construction. + +Catalog: `cycle7-durable-rule-catalog-v3`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. + +## Stage B1 corpus + +Exploratory seed `860000` and topic `independent replication` were frozen in `cycle7-seed-ledger-v2` before generation. Pair stride 32, one pair per TinyDev domain, 8 texts (4 watermarked + 4 matched unwatermarked). + +Artifact hashes (after the root-window classifier fix and detector attachment): + +- samples `c345daf7233c18058052f34b16cbc905572579f362b914600372a601f37b9cd7` +- density `4f22db5ad4588744bcb99c3f06d26584242464f30cb0827730ead3f73621ea1e` +- geometry `37f16f73098736c1e69a9dbc646bf2748f4ffe08d58ba661c1d0e078a95514e8` +- detector-compare `c92bb0412b77492865a30f706a7049b1ddfc7b3024515e1e80cab3f93f396869` + +## Density (VERIFIED on seed 860000) + +Mean durable candidates: **4.25** per sample (Stage A durable sites were typically 1–3). + +Family means: + +| Family | Mean candidates | +| --- | --- | +| sentence-boundary newline | 2.50 | +| coordinating comma | 0.75 | +| non-format residual | 1.75 | +| complementizer `that` | 0.125 | +| prenominal hyphen | 0.125 | +| discourse comma | 0.00 | +| parenthetical adverb | 0.00 | + +Zero-candidate rows: 0/8. Most of the new density is Family 4 formatting, not lexical/syntactic sites. + +## Geometry (VERIFIED on seed 860000) + +Durable-only, GPT-2 tokenizer, budget 14: + +- mean root windows: 49.75 +- mean intact after durable edits: 35.625 +- mean intact after `whitespace-collapse-v1`: 35.625 +- collapsed intact / root: **0.716** + +Collapse does not restore durable edits (`collapsed_equals_collapsed_source` is false whenever a durable edit fired). Cycle 6 spacing on the same texts: + +- raw intact / root: 0.171 +- collapsed intact / root: **0.965** + +Combined after collapse: intact / root **0.852**, worse than durable-only. Cover-greedy spends budget on spacing that collapse then erases. This replicates the Stage A combined-arm geometry warning on **new** development data. It is not used to hard-code a scheduler patch for individual 860000 rows. + +## Detector (VERIFIED on seed 860000, 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 | Raw WM mean | +| --- | --- | --- | --- | --- | --- | --- | +| Cycle 6 spacing B14 | 4/4 | **0/4** | 0/4 | **4/4** | 0/4 | 0.495731 | +| Cycle 7 durable v3 | 4/4 | **2/4** | 0/4 | **2/4** | 0/4 | 0.571097 | +| Combined | 4/4 | **0/4** | 0/4 | **3/4** | 0/4 | 0.493690 | + +NFKC, Cf-strip, NFKC+Cf-strip, and `ws_collapse_nfkc_cf_strip` matched the corresponding raw or collapse arm on these rows. + +Unwatermarked transformed controls: **0 detections** on every arm and sanitizer. + +Compared with Stage A catalog v2 on seed 810000 (durable 4/4 raw and 4/4 after collapse), Stage B1 durable v3 is the first local development measurement in which collapse-surviving transformed-watermarked detections dropped below 4/4. + +This is n=4. It is not ZERO_RESIDUAL. It is not Cycle 7 formal confirmation. + +## Claim boundary + +Safe claim: under the frozen SynthID-Text/GPT-2 protocol, catalog v3 durable edits on seed `860000` reduced collapse-surviving watermarked detections from the Stage A durable baseline of 4/4 to 2/4, while Cycle 6 spacing on the same texts returned to 4/4 after whitespace collapse, and transformed unwatermarked controls stayed 0/4. + +Do not claim: universal watermark removal; proprietary-detector transfer; formal confirmation; human-fidelity validation; that format newlines would survive a wrap/reflow sanitizer. + +## What remains the bottleneck + +Local semantically conservative English surface equivalence is still sparse on ordinary ~64-token TinyDev GPT-2 prose. Family 4 supplies most of the new sites. Complementizer, discourse, prenominal, and parenthetical families barely fired. TinyDev 64-token GPT-2 continuations are often list-like and truncated; that domain may inflate sentence-boundary density relative to ordinary paragraph prose. + +## Next + +1. Do not retune catalog v3 on seed 860000. +2. Disjoint validation, if run, uses seed `820000` with topic `held-out evaluation`, frozen before that generation. +3. Do not inspect 830000/840000/850000. +4. A detector-blind combined scheduler that prefers collapse-surviving families is a HYPOTHESIS supported by 810000 and 860000 geometry. It is not applied to those rows and is not required for a v3 validation split. diff --git a/evidence/cycle7-stage-b-2026-08-25/decision.json b/evidence/cycle7-stage-b-2026-08-25/decision.json new file mode 100644 index 00000000..15e54d18 --- /dev/null +++ b/evidence/cycle7-stage-b-2026-08-25/decision.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-decision-v1","collapsed_intact_fraction_of_root":0.7160804020100503,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":4.25,"mean_coord_comma_candidate_count":0.75,"mean_format_candidate_count":2.5,"mean_nonformat_candidate_count":1.75,"mean_punctuation_candidate_count":3.25,"notes":"Stage B is development-only. Seeds 830000/840000/850000 were not inspected. Seed 820000 remains unused validation until a catalog freeze.","reasons":["mean durable candidate count rose above the Stage A one-to-three site regime","most of the new density is sentence-boundary formatting rather than lexical/syntactic sites","collapsed intact root windows dropped, but more than half of the source windows remain","this is development evidence, not Cycle 7 formal confirmation"]} diff --git a/evidence/cycle7-stage-b-2026-08-25/density.json b/evidence/cycle7-stage-b-2026-08-25/density.json new file mode 100644 index 00000000..454e6284 --- /dev/null +++ b/evidence/cycle7-stage-b-2026-08-25/density.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-density-v1","artifact_hash":"4f22db5ad4588744bcb99c3f06d26584242464f30cb0827730ead3f73621ea1e","decision":{"algorithm_version":"cycle7-stage-b-decision-v1","collapsed_intact_fraction_of_root":null,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":4.25,"mean_coord_comma_candidate_count":0.75,"mean_format_candidate_count":2.5,"mean_nonformat_candidate_count":1.75,"mean_punctuation_candidate_count":3.25,"notes":"Stage B is development-only. Seeds 830000/840000/850000 were not inspected. Seed 820000 remains unused validation until a catalog freeze.","reasons":["mean durable candidate count rose above the Stage A one-to-three site regime","most of the new density is sentence-boundary formatting rather than lexical/syntactic sites","this is development evidence, not Cycle 7 formal confirmation"]},"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","rows":[{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":2,"candidates_per_64_tokens":2.7234,"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":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","lexical-for-example-for-instance"],"sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":5,"candidates_per_64_tokens":5.5172,"complementizer_candidate_count":1,"complementizer_rule_ids":["cycle7-syntax-complementizer-that-insert"],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":0,"coord_comma_candidate_count":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-insert-and"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":3,"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":5,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":5,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-insert-and","cycle7-syntax-complementizer-that-insert","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b1-general_explanatory-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":6,"candidates_per_64_tokens":8.9302,"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":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":4,"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":6,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":7,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":4,"candidates_per_64_tokens":6.4,"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":3,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-drop-and"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":4,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":9,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-insert-and","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"sample_id":"cycle7-stage-b1-technical_explanation-watermarked"},{"apostrophe_candidate_count":2,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":4,"candidates_per_64_tokens":5.8182,"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":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":3,"candidates_per_64_tokens":3.5556,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":1,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":3,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":3,"prenominal_candidate_count":1,"prenominal_rule_ids":["lexical-prenominal-open-real-world"],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["lexical-prenominal-open-real-world","cycle7-format-sentence-period-newline","contract-they-are"],"sample_id":"cycle7-stage-b1-conversational_prose-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":5,"candidates_per_64_tokens":5.3333,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":1,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":4,"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":5,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":2,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-are-not","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":5,"candidates_per_64_tokens":5.7143,"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":5,"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":5,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":5,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b1-structured_instructional-watermarked"}],"seed_base":860000,"summary":{"max_candidate_count":6,"mean_candidate_count":4.25,"mean_complementizer_candidate_count":0.125,"mean_coord_comma_candidate_count":0.75,"mean_discourse_comma_candidate_count":0.0,"mean_format_candidate_count":2.5,"mean_parenthetical_candidate_count":0.0,"mean_prenominal_candidate_count":0.125,"min_candidate_count":2,"sample_count":8,"zero_candidate_rows":0}} diff --git a/evidence/cycle7-stage-b-2026-08-25/detector-compare.json b/evidence/cycle7-stage-b-2026-08-25/detector-compare.json new file mode 100644 index 00000000..c036a16b --- /dev/null +++ b/evidence/cycle7-stage-b-2026-08-25/detector-compare.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-detector-compare-v1","artifact_hash":"c92bb0412b77492865a30f706a7049b1ddfc7b3024515e1e80cab3f93f396869","budget":14,"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","geometry_rows":[{"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":false,"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"],"intact_window_count":11,"measurement_hash":"bd7c1c472dc291821624ef6c72b4fbcd3090ca6d492c6b40cbdbc38d126ab8df","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":11,"measurement_hash":"9aa3cdd2769cc3ea980eac125a8b3774a17b83170f3f3720c5fef78cf51b46bd","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":2,"candidate_exhausted":true,"changed_token_positions":49,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":51,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":51,"measurement_hash":"285bbf7277bb1e36d6be3c58b925351231b6502b2c728b1ecae9b7cd22f1fce5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","lexical-for-example-for-instance"],"token_delta":1,"tuple_leak_window_count":51}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":62,"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":10,"measurement_hash":"6d871325cd13b7693c965df35157585064944dae3484b118ad708f936c471cba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":59,"selected_count":14,"selected_rule_ids":["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","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":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"90312810b06d0348de876bb267f9af64a19126748cfc817d9ea571a0a72cf5cf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-complementizer-that-insert","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":40,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":40,"measurement_hash":"ee29a4504bfea8f42573a2b9df97efbeffbb6a9d5ec69f05e7435bc0e53c5dc6","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-insert-and","cycle7-syntax-complementizer-that-insert","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":40}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":47,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":36,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":36,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"a763c3d5f5eb6453d965fc6612b9ddc20972e690691ee04e98eabcdc0dc03f6e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["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-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-period","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":29,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"86759204d7836965fcec50444a3f4988195108543129a99f713e6ced6ced0ab5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":10,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":22,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":22,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":22,"measurement_hash":"8d9e0999bd5edfdcee2414463fd7a0443eb0cd9e6be8dce424e28d79169ff91d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":36,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":22}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"06737c6526e6e9d5b69c10dc96994a45a8b05e669bf6d5a9f89ce63a3989d66e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":44,"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","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-before-sentence"],"token_delta":14,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":39,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f7c652096fd99ec73333bb3433df05a25437898cf9c0858756642c7073cca0c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":44,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":31,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":31,"measurement_hash":"53cdd179a6d5498a5e581a6e0cbf7e1224322b3d85a0f61f3cad78767de86d6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":44,"selected_count":4,"selected_rule_ids":["cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-insert-and","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":31}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"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":12,"measurement_hash":"f97cd2d8650ec694fb2eeabcdf186a4741abaed4ab380d098c01f815339025d7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","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":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":12,"measurement_hash":"4f66132da491528ee8ec4919ca5c6d8b7ce43283be3e64d0242d408b91a07c4d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":66,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":46,"measurement_hash":"095eca08f145837e517373e34123872a681a59d2bdc2965b2b846eddddaa5564","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":5,"tuple_leak_window_count":46}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":61,"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":12,"measurement_hash":"298c10cd01d91ce54905c3b746bd27912c2837ab0efe4b6a20f62658c3647a40","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"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-period","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":63,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"3adc07d338d91d0b8ba563f70c0a978318c05ab75e77348ca89fa8241e33f0cb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":23,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion"],"intact_window_count":46,"measurement_hash":"f9fa4c7999bb827f9847e77610a8e3cd7f21d73eedc5afa6d9d0586e2b1103d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-prenominal-open-real-world","cycle7-format-sentence-period-newline","contract-they-are"],"token_delta":0,"tuple_leak_window_count":46}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":64,"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":6,"measurement_hash":"39317e06215b05b533876a0acbcf7e4df2a4e6688cad19a0621227941c29d9ba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":52,"selected_count":14,"selected_rule_ids":["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-period","surface-space-after-any-word","contract-are-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":68,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":37,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9b1df7d89bb53f59026823ec24ac7d912084c97de672e936acd405da4ea70595","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":52,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-are-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_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":29,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":29,"measurement_hash":"5449377510b228f0bc8e2f3908de3d3de9b23c1c8617c612ad9e2b80acc0c8d9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-are-not","cycle7-format-sentence-period-newline"],"token_delta":4,"tuple_leak_window_count":29}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":27,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":27,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"ef59dce72a8003a15301fcb7eaf54b91159ca42a2fe4d673ce5329220fb27817","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":44,"root_window_count":27,"selected_count":13,"selected_rule_ids":["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","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":64,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":26,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":26,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"f0a926b4be54b5513b0ed79d9e765d13182e6910010a6ef0e1cff6d681c1202e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":27,"selected_count":12,"selected_rule_ids":["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","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":12,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":20,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":21,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":20,"measurement_hash":"a40e9ceeaf618761664d05db946968669fe4cf61d9c2ba9d9157bcf6506ae2c3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":27,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":21}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b1-structured_instructional-watermarked"}],"model":"openai-community/gpt2","model_revision":"607a30d783dfa663caf39e06633721c8d4cfcd7e","samples":[{"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked","seed":860000,"text":" Write a long sentence with no obvious, grammatical mistakes. Use clear language such as \"This is what I see.\"\n\nMake your data available to anyone who is interested.\n\nGet lots of data from your source data.\n\nUse common data sources to your advantage.\n\nFor example, you might","text_sha256":"e6cdf16a797ccb7010ad962bb16e1ab3a025d9f877134b0e3c98cfa94bc77087"},{"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b1-general_explanatory-watermarked","seed":860000,"text":" Use a list of all authors in a single paper. Keep the list of authors in a single file. Read the full description of your paper and the whole paper in a single online journal.\n\nPlease note that the goal of this article is to help you understand the different ways that you can perform independent replication. It","text_sha256":"21e588d91c7d5b08e7c66bb26dc0eed83d1d91d57d91813ba6056eaf51ad8d6e"},{"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked","seed":860032,"text":"\n\n3. Use separate replication experiments. Use separate replication experiments. Define the main idea, one failure mode, and one validation check.\n\n4. Use multiple replication experiments. Use multiple replication experiments. Define the main idea, one failure mode, and one validation check.\n\n5. Use an","text_sha256":"8bf82abe73cf2d77002159797fe5b546db167fad7a73258e28c975d44be3d777"},{"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b1-technical_explanation-watermarked","seed":860032,"text":" Create a log file that describes the errors and the validation checks.\n\n1.1.1. Validation: Create a log file that describes the errors and the validation checks. Define the main idea, one failure mode, and one validation check.\n\n1.1.2. Validation: Create","text_sha256":"366f1c1cca9433ad864b2416e32b02668953cba860b35df059e9f555a68ddc89"},{"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked","seed":860065,"text":"\n\nDon't use a \"spoiler\" or a \"no-brainer\" line. Use one of these as a starting point:\n\n\"The last time we looked at the data, it's clearly not conclusive that replication is good for the health of the economy.\"\n\nA strong case can be made","text_sha256":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"},{"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b1-conversational_prose-watermarked","seed":860065,"text":" Use real-world examples in your article.\n\nThis method works best with those who are familiar with their work. The more you practice with a person, the less likely they are to say the same thing over and over again.\n\nThe second most common mistake I see when trying to find good articles about a","text_sha256":"a69929b4ae53870b899ba493ed9701ee581d700910ccb216110d717ab6573287"},{"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked","seed":860096,"text":" Write a sequence of steps for applying a replication. Write each step as a word and always end with a single letter. The steps you write with are the steps in the experiment. The steps in the experiment are not optional but should be followed in some way. The steps in the experiment are the steps in the experiment that","text_sha256":"293c95b2fdc14c6fab988d8877e64186444d5dda0e28d18bda5109f517258bf9"},{"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b1-structured_instructional-watermarked","seed":860096,"text":" Use a list of the words or phrases to describe the experiment. Use a word to describe the experiment. Use a word to describe the experiment.\n\nWrite a word or phrase to describe the experiment. Use a word or phrase to describe the experiment. Use a word or phrase to describe the experiment. Use a word","text_sha256":"d870da2accd740d0a8bded64e249f3559cc117a2584a2b730233c919dc9f7254"}],"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":48,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":11,"measurement_hash":"bd7c1c472dc291821624ef6c72b4fbcd3090ca6d492c6b40cbdbc38d126ab8df","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49162457912457913,"sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"nfkc":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"nfkc_cf_strip":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"raw":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"ws_collapse":{"detected":false,"score":0.48716329966329963,"text_hash":"6e33e551d9dd0782cc2f3df6ec3d95166b0f5d47bc1af5ac388a1bb12c32da47"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.48716329966329963,"text_hash":"6e33e551d9dd0782cc2f3df6ec3d95166b0f5d47bc1af5ac388a1bb12c32da47"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":2,"candidate_exhausted":true,"changed_token_positions":49,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":51,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":51,"measurement_hash":"285bbf7277bb1e36d6be3c58b925351231b6502b2c728b1ecae9b7cd22f1fce5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","lexical-for-example-for-instance"],"token_delta":1,"tuple_leak_window_count":51},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49162457912457913,"sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"},"nfkc":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"},"nfkc_cf_strip":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"},"raw":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"},"ws_collapse":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.48207484682894514,"text_hash":"c21994e17d05affbe2edb9357d96c65be249ebc4de8598ae118369c489584fd8"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":11,"measurement_hash":"9aa3cdd2769cc3ea980eac125a8b3774a17b83170f3f3720c5fef78cf51b46bd","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49162457912457913,"sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"nfkc":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"nfkc_cf_strip":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"raw":{"detected":false,"score":0.4793828697938287,"text_hash":"e1cd3cc42d96366a136bbb9c6e34e6b85be0f60055ff0f63aee9a25c5bfae8e0"},"ws_collapse":{"detected":false,"score":0.48716329966329963,"text_hash":"6e33e551d9dd0782cc2f3df6ec3d95166b0f5d47bc1af5ac388a1bb12c32da47"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.48716329966329963,"text_hash":"6e33e551d9dd0782cc2f3df6ec3d95166b0f5d47bc1af5ac388a1bb12c32da47"}}},{"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":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":10,"measurement_hash":"6d871325cd13b7693c965df35157585064944dae3484b118ad708f936c471cba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":59,"selected_count":14,"selected_rule_ids":["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","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":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6428265707926725,"sample_id":"cycle7-stage-b1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48616299986163,"text_hash":"19df602b02ff256bf3725eb07b4786a376c0ecb061c5b8761461b42257552f86"},"nfkc":{"detected":false,"score":0.48616299986163,"text_hash":"19df602b02ff256bf3725eb07b4786a376c0ecb061c5b8761461b42257552f86"},"nfkc_cf_strip":{"detected":false,"score":0.48616299986163,"text_hash":"19df602b02ff256bf3725eb07b4786a376c0ecb061c5b8761461b42257552f86"},"raw":{"detected":false,"score":0.48616299986163,"text_hash":"19df602b02ff256bf3725eb07b4786a376c0ecb061c5b8761461b42257552f86"},"ws_collapse":{"detected":true,"score":0.6428265707926725,"text_hash":"21e588d91c7d5b08e7c66bb26dc0eed83d1d91d57d91813ba6056eaf51ad8d6e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6428265707926725,"text_hash":"21e588d91c7d5b08e7c66bb26dc0eed83d1d91d57d91813ba6056eaf51ad8d6e"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":40,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":40,"measurement_hash":"ee29a4504bfea8f42573a2b9df97efbeffbb6a9d5ec69f05e7435bc0e53c5dc6","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-insert-and","cycle7-syntax-complementizer-that-insert","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":40},"label":"watermarked","pristine_detected":true,"pristine_score":0.6428265707926725,"sample_id":"cycle7-stage-b1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"},"nfkc":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"},"nfkc_cf_strip":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"},"raw":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"},"ws_collapse":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.58431976010101,"text_hash":"23198c09d4ceafca1aa7773cdc30a71e967a8d56218b87bb41d6c844f0d05339"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"90312810b06d0348de876bb267f9af64a19126748cfc817d9ea571a0a72cf5cf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-complementizer-that-insert","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":7},"label":"watermarked","pristine_detected":true,"pristine_score":0.6428265707926725,"sample_id":"cycle7-stage-b1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49581430745814303,"text_hash":"e552acb524e7c2947b574a759cc929c2616830a326ac7f1a57b9a59d3c37ebbf"},"nfkc":{"detected":false,"score":0.49581430745814303,"text_hash":"e552acb524e7c2947b574a759cc929c2616830a326ac7f1a57b9a59d3c37ebbf"},"nfkc_cf_strip":{"detected":false,"score":0.49581430745814303,"text_hash":"e552acb524e7c2947b574a759cc929c2616830a326ac7f1a57b9a59d3c37ebbf"},"raw":{"detected":false,"score":0.49581430745814303,"text_hash":"e552acb524e7c2947b574a759cc929c2616830a326ac7f1a57b9a59d3c37ebbf"},"ws_collapse":{"detected":true,"score":0.6186868686868686,"text_hash":"1403e82687c27cf2c4058ffb5efa3831e53ef7574a64939756ac11ae11eb02a1"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6186868686868686,"text_hash":"1403e82687c27cf2c4058ffb5efa3831e53ef7574a64939756ac11ae11eb02a1"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":47,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":36,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":36,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"a763c3d5f5eb6453d965fc6612b9ddc20972e690691ee04e98eabcdc0dc03f6e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["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-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-period","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4848484848484848,"sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5068330362448009,"text_hash":"41fe6accfd71db8d1d13e8ebdda4203c01de1310f57c6298739cde12d16861d5"},"nfkc":{"detected":false,"score":0.5068330362448009,"text_hash":"41fe6accfd71db8d1d13e8ebdda4203c01de1310f57c6298739cde12d16861d5"},"nfkc_cf_strip":{"detected":false,"score":0.5068330362448009,"text_hash":"41fe6accfd71db8d1d13e8ebdda4203c01de1310f57c6298739cde12d16861d5"},"raw":{"detected":false,"score":0.5068330362448009,"text_hash":"41fe6accfd71db8d1d13e8ebdda4203c01de1310f57c6298739cde12d16861d5"},"ws_collapse":{"detected":false,"score":0.4848484848484848,"text_hash":"8bf82abe73cf2d77002159797fe5b546db167fad7a73258e28c975d44be3d777"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4848484848484848,"text_hash":"8bf82abe73cf2d77002159797fe5b546db167fad7a73258e28c975d44be3d777"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":22,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":22,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":22,"measurement_hash":"8d9e0999bd5edfdcee2414463fd7a0443eb0cd9e6be8dce424e28d79169ff91d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":36,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":22},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4848484848484848,"sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"},"nfkc":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"},"nfkc_cf_strip":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"},"raw":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"},"ws_collapse":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4758838383838383,"text_hash":"e509af8f08991057bad3ccffda597a159bf8ae659d1aee08f10589ad7fdc15f5"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":29,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"86759204d7836965fcec50444a3f4988195108543129a99f713e6ced6ced0ab5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":10,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4848484848484848,"sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5044677544677545,"text_hash":"1ced30abe15e3f06eb67b246e78ff860c3626fa6d6c066252b7383307a33ba5e"},"nfkc":{"detected":false,"score":0.5044677544677545,"text_hash":"1ced30abe15e3f06eb67b246e78ff860c3626fa6d6c066252b7383307a33ba5e"},"nfkc_cf_strip":{"detected":false,"score":0.5044677544677545,"text_hash":"1ced30abe15e3f06eb67b246e78ff860c3626fa6d6c066252b7383307a33ba5e"},"raw":{"detected":false,"score":0.5044677544677545,"text_hash":"1ced30abe15e3f06eb67b246e78ff860c3626fa6d6c066252b7383307a33ba5e"},"ws_collapse":{"detected":false,"score":0.5053095053095052,"text_hash":"a73862dbe162a655b1b702a1d0ad51d0911041a729d4182b5ce5e4af49592ce9"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5053095053095052,"text_hash":"a73862dbe162a655b1b702a1d0ad51d0911041a729d4182b5ce5e4af49592ce9"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"06737c6526e6e9d5b69c10dc96994a45a8b05e669bf6d5a9f89ce63a3989d66e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":44,"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","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-before-sentence"],"token_delta":14,"tuple_leak_window_count":8},"label":"watermarked","pristine_detected":true,"pristine_score":0.5629591368227732,"sample_id":"cycle7-stage-b1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.47380521634252976,"text_hash":"4d1121f4a92482c3401d9e10677ffc8df885ef8ac9f3638297c398374e38500d"},"nfkc":{"detected":false,"score":0.47380521634252976,"text_hash":"4d1121f4a92482c3401d9e10677ffc8df885ef8ac9f3638297c398374e38500d"},"nfkc_cf_strip":{"detected":false,"score":0.47380521634252976,"text_hash":"4d1121f4a92482c3401d9e10677ffc8df885ef8ac9f3638297c398374e38500d"},"raw":{"detected":false,"score":0.47380521634252976,"text_hash":"4d1121f4a92482c3401d9e10677ffc8df885ef8ac9f3638297c398374e38500d"},"ws_collapse":{"detected":true,"score":0.5629591368227732,"text_hash":"366f1c1cca9433ad864b2416e32b02668953cba860b35df059e9f555a68ddc89"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5629591368227732,"text_hash":"366f1c1cca9433ad864b2416e32b02668953cba860b35df059e9f555a68ddc89"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":31,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":31,"measurement_hash":"53cdd179a6d5498a5e581a6e0cbf7e1224322b3d85a0f61f3cad78767de86d6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":44,"selected_count":4,"selected_rule_ids":["cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-insert-and","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":31},"label":"watermarked","pristine_detected":true,"pristine_score":0.5629591368227732,"sample_id":"cycle7-stage-b1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"},"nfkc":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"},"nfkc_cf_strip":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"},"raw":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"},"ws_collapse":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5457415059687787,"text_hash":"c5e46296cfd63d5782c0e61e76de4fce7369c4a6f896ff638977422c31364c77"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":39,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f7c652096fd99ec73333bb3433df05a25437898cf9c0858756642c7073cca0c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":44,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":12,"tuple_leak_window_count":8},"label":"watermarked","pristine_detected":true,"pristine_score":0.5629591368227732,"sample_id":"cycle7-stage-b1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.47064911409173704,"text_hash":"3b096e166a1f44ae99be6af356f2edc437b87c4943164b9c801643ba2233c5ea"},"nfkc":{"detected":false,"score":0.47064911409173704,"text_hash":"3b096e166a1f44ae99be6af356f2edc437b87c4943164b9c801643ba2233c5ea"},"nfkc_cf_strip":{"detected":false,"score":0.47064911409173704,"text_hash":"3b096e166a1f44ae99be6af356f2edc437b87c4943164b9c801643ba2233c5ea"},"raw":{"detected":false,"score":0.47064911409173704,"text_hash":"3b096e166a1f44ae99be6af356f2edc437b87c4943164b9c801643ba2233c5ea"},"ws_collapse":{"detected":true,"score":0.5668385987534924,"text_hash":"c93c9c2a910c70feb736185ac67a445d897a073c4468a79836c452329607183f"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5668385987534924,"text_hash":"c93c9c2a910c70feb736185ac67a445d897a073c4468a79836c452329607183f"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"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":12,"measurement_hash":"f97cd2d8650ec694fb2eeabcdf186a4741abaed4ab380d098c01f815339025d7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5254208754208755,"sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"nfkc":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"nfkc_cf_strip":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"raw":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"ws_collapse":{"detected":false,"score":0.5254208754208755,"text_hash":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5254208754208755,"text_hash":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":66,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":46,"measurement_hash":"095eca08f145837e517373e34123872a681a59d2bdc2965b2b846eddddaa5564","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":5,"tuple_leak_window_count":46},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5254208754208755,"sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"},"nfkc":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"},"nfkc_cf_strip":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"},"raw":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"},"ws_collapse":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49226884226884227,"text_hash":"324926d4b6ae6d7722ab24d1d2579346aa469a4bd05602594bade472c3ebeb9b"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","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":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":12,"measurement_hash":"4f66132da491528ee8ec4919ca5c6d8b7ce43283be3e64d0242d408b91a07c4d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5254208754208755,"sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"nfkc":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"nfkc_cf_strip":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"raw":{"detected":false,"score":0.5324529074529074,"text_hash":"d4f51e587523bf843e1a8567e003b1a5f811ed473034295cc4fdd72b635a5f42"},"ws_collapse":{"detected":false,"score":0.5254208754208755,"text_hash":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5254208754208755,"text_hash":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":61,"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":12,"measurement_hash":"298c10cd01d91ce54905c3b746bd27912c2837ab0efe4b6a20f62658c3647a40","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"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-period","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":12},"label":"watermarked","pristine_detected":true,"pristine_score":0.5835437710437711,"sample_id":"cycle7-stage-b1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.51290300262903,"text_hash":"d6e9bd1b244d80b98522274c3a7eeb48506e8e43e874b46cb1af211927918b27"},"nfkc":{"detected":false,"score":0.51290300262903,"text_hash":"d6e9bd1b244d80b98522274c3a7eeb48506e8e43e874b46cb1af211927918b27"},"nfkc_cf_strip":{"detected":false,"score":0.51290300262903,"text_hash":"d6e9bd1b244d80b98522274c3a7eeb48506e8e43e874b46cb1af211927918b27"},"raw":{"detected":false,"score":0.51290300262903,"text_hash":"d6e9bd1b244d80b98522274c3a7eeb48506e8e43e874b46cb1af211927918b27"},"ws_collapse":{"detected":true,"score":0.5706228956228956,"text_hash":"1465b736a280e1fd201fa6470960297abfc984b4cfa0e628a047298d2897088e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5706228956228956,"text_hash":"1465b736a280e1fd201fa6470960297abfc984b4cfa0e628a047298d2897088e"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":23,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion"],"intact_window_count":46,"measurement_hash":"f9fa4c7999bb827f9847e77610a8e3cd7f21d73eedc5afa6d9d0586e2b1103d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-prenominal-open-real-world","cycle7-format-sentence-period-newline","contract-they-are"],"token_delta":0,"tuple_leak_window_count":46},"label":"watermarked","pristine_detected":true,"pristine_score":0.5835437710437711,"sample_id":"cycle7-stage-b1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"},"nfkc":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"},"nfkc_cf_strip":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"},"raw":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"},"ws_collapse":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5273148148148148,"text_hash":"6895030e158ca39629e07fd21ecb8586810a5dfea09b0ae0d90a10bc38175075"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":63,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"3adc07d338d91d0b8ba563f70c0a978318c05ab75e77348ca89fa8241e33f0cb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.5835437710437711,"sample_id":"cycle7-stage-b1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5021793275217933,"text_hash":"deca0843add10ac63d734ebe4c8eaa0db70787ca3385da44b00acf1c0cf211e7"},"nfkc":{"detected":false,"score":0.5021793275217933,"text_hash":"deca0843add10ac63d734ebe4c8eaa0db70787ca3385da44b00acf1c0cf211e7"},"nfkc_cf_strip":{"detected":false,"score":0.5021793275217933,"text_hash":"deca0843add10ac63d734ebe4c8eaa0db70787ca3385da44b00acf1c0cf211e7"},"raw":{"detected":false,"score":0.5021793275217933,"text_hash":"deca0843add10ac63d734ebe4c8eaa0db70787ca3385da44b00acf1c0cf211e7"},"ws_collapse":{"detected":false,"score":0.5368024507368769,"text_hash":"1ad67b13c1011bbae54247856b7e311274737039a8278abbc0fd222f45c4e356"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5368024507368769,"text_hash":"1ad67b13c1011bbae54247856b7e311274737039a8278abbc0fd222f45c4e356"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":64,"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":6,"measurement_hash":"39317e06215b05b533876a0acbcf7e4df2a4e6688cad19a0621227941c29d9ba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":52,"selected_count":14,"selected_rule_ids":["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-period","surface-space-after-any-word","contract-are-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5221930846930847,"sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48567821067821065,"text_hash":"409ce97082e8586dfa3cd29c7ee549700b1cc356038e8cac6e22784256fce94f"},"nfkc":{"detected":false,"score":0.48567821067821065,"text_hash":"409ce97082e8586dfa3cd29c7ee549700b1cc356038e8cac6e22784256fce94f"},"nfkc_cf_strip":{"detected":false,"score":0.48567821067821065,"text_hash":"409ce97082e8586dfa3cd29c7ee549700b1cc356038e8cac6e22784256fce94f"},"raw":{"detected":false,"score":0.48567821067821065,"text_hash":"409ce97082e8586dfa3cd29c7ee549700b1cc356038e8cac6e22784256fce94f"},"ws_collapse":{"detected":false,"score":0.516819134743663,"text_hash":"21579ad6cd32a2d144b0f11b9cdaa937a86135b5bb165fbb5d1a72ca253d4849"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.516819134743663,"text_hash":"21579ad6cd32a2d144b0f11b9cdaa937a86135b5bb165fbb5d1a72ca253d4849"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":29,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":29,"measurement_hash":"5449377510b228f0bc8e2f3908de3d3de9b23c1c8617c612ad9e2b80acc0c8d9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-are-not","cycle7-format-sentence-period-newline"],"token_delta":4,"tuple_leak_window_count":29},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5221930846930847,"sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"},"nfkc":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"},"nfkc_cf_strip":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"},"raw":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"},"ws_collapse":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4988062442607897,"text_hash":"20088d914507296efd22eb4f3ead89d0e82ce755eab840dea8dffd36b712422a"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":68,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":37,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9b1df7d89bb53f59026823ec24ac7d912084c97de672e936acd405da4ea70595","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":52,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-are-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.5221930846930847,"sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4942381562099871,"text_hash":"6efffe551cb974752e7f58368992abaf0de1c76f5a74cae1e6d4c5f41667a790"},"nfkc":{"detected":false,"score":0.4942381562099871,"text_hash":"6efffe551cb974752e7f58368992abaf0de1c76f5a74cae1e6d4c5f41667a790"},"nfkc_cf_strip":{"detected":false,"score":0.4942381562099871,"text_hash":"6efffe551cb974752e7f58368992abaf0de1c76f5a74cae1e6d4c5f41667a790"},"raw":{"detected":false,"score":0.4942381562099871,"text_hash":"6efffe551cb974752e7f58368992abaf0de1c76f5a74cae1e6d4c5f41667a790"},"ws_collapse":{"detected":false,"score":0.498714416896235,"text_hash":"d330d2d5deed7ad09e5fde09c38474e1d04b52a78b5aa76c82446da2e782a6e8"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.498714416896235,"text_hash":"d330d2d5deed7ad09e5fde09c38474e1d04b52a78b5aa76c82446da2e782a6e8"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":27,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":27,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"ef59dce72a8003a15301fcb7eaf54b91159ca42a2fe4d673ce5329220fb27817","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":44,"root_window_count":27,"selected_count":13,"selected_rule_ids":["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","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":9},"label":"watermarked","pristine_detected":true,"pristine_score":0.655910961466517,"sample_id":"cycle7-stage-b1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5100533638269488,"text_hash":"434ef8967568b89bd13e10c83dba7fd2a91ae3667d47b2844df5ed2c37a4e9cd"},"nfkc":{"detected":false,"score":0.5100533638269488,"text_hash":"434ef8967568b89bd13e10c83dba7fd2a91ae3667d47b2844df5ed2c37a4e9cd"},"nfkc_cf_strip":{"detected":false,"score":0.5100533638269488,"text_hash":"434ef8967568b89bd13e10c83dba7fd2a91ae3667d47b2844df5ed2c37a4e9cd"},"raw":{"detected":false,"score":0.5100533638269488,"text_hash":"434ef8967568b89bd13e10c83dba7fd2a91ae3667d47b2844df5ed2c37a4e9cd"},"ws_collapse":{"detected":true,"score":0.655910961466517,"text_hash":"d870da2accd740d0a8bded64e249f3559cc117a2584a2b730233c919dc9f7254"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.655910961466517,"text_hash":"d870da2accd740d0a8bded64e249f3559cc117a2584a2b730233c919dc9f7254"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":20,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":21,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":20,"measurement_hash":"a40e9ceeaf618761664d05db946968669fe4cf61d9c2ba9d9157bcf6506ae2c3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":27,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":21},"label":"watermarked","pristine_detected":true,"pristine_score":0.655910961466517,"sample_id":"cycle7-stage-b1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"},"nfkc":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"},"nfkc_cf_strip":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"},"raw":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"},"ws_collapse":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6270108492330714,"text_hash":"b7a4b51d682245977af86f52214a83e6694b3132c54e5878105befc7bb7ece16"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":64,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":26,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":26,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"f0a926b4be54b5513b0ed79d9e765d13182e6910010a6ef0e1cff6d681c1202e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":27,"selected_count":12,"selected_rule_ids":["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","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":12,"tuple_leak_window_count":9},"label":"watermarked","pristine_detected":true,"pristine_score":0.655910961466517,"sample_id":"cycle7-stage-b1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.506118881118881,"text_hash":"6d4f27795a146ac205aecad578b0afe5c854d861246b06943097c96577e83bfb"},"nfkc":{"detected":false,"score":0.506118881118881,"text_hash":"6d4f27795a146ac205aecad578b0afe5c854d861246b06943097c96577e83bfb"},"nfkc_cf_strip":{"detected":false,"score":0.506118881118881,"text_hash":"6d4f27795a146ac205aecad578b0afe5c854d861246b06943097c96577e83bfb"},"raw":{"detected":false,"score":0.506118881118881,"text_hash":"6d4f27795a146ac205aecad578b0afe5c854d861246b06943097c96577e83bfb"},"ws_collapse":{"detected":true,"score":0.6526094276094275,"text_hash":"2543374d096526c915a39cdb42ccc65cce566c35b7a94ae1166975d46cbb7c0b"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6526094276094275,"text_hash":"2543374d096526c915a39cdb42ccc65cce566c35b7a94ae1166975d46cbb7c0b"}}}],"secret_access_used_for_selection":false,"seed_base":860000,"stage":"B1","summaries":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","median_raw_watermarked_score":0.5100533638269488,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.4957311456650346,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.51290300262903,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6080798911762145},"cycle7_combined":{"arm_id":"cycle7_combined","median_raw_watermarked_score":0.5021793275217933,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.4936904075476386,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.506118881118881,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":3,"ws_collapse_watermarked_mean_score":0.5937343364466664},"cycle7_durable":{"arm_id":"cycle7_durable","median_raw_watermarked_score":0.58431976010101,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":2,"raw_watermarked_mean_score":0.5710967325294187,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.6270108492330714,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":2,"ws_collapse_watermarked_mean_score":0.5710967325294187}},"threshold":0.5570987654320988,"topic":"independent replication"} diff --git a/evidence/cycle7-stage-b-2026-08-25/geometry.json b/evidence/cycle7-stage-b-2026-08-25/geometry.json new file mode 100644 index 00000000..75efe277 --- /dev/null +++ b/evidence/cycle7-stage-b-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":"37f16f73098736c1e69a9dbc646bf2748f4ffe08d58ba661c1d0e078a95514e8","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","durable_intact_means":{"collapsed_intact_fraction_of_root":0.7160804020100503,"mean_collapsed_intact_window_count":35.625,"mean_intact_window_count":35.625,"mean_root_window_count":49.75,"mean_selected_count":4.125},"rows":[{"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":false,"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"],"intact_window_count":11,"measurement_hash":"bd7c1c472dc291821624ef6c72b4fbcd3090ca6d492c6b40cbdbc38d126ab8df","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":11,"measurement_hash":"9aa3cdd2769cc3ea980eac125a8b3774a17b83170f3f3720c5fef78cf51b46bd","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-before-sentence","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","lexical-for-example-for-instance"],"token_delta":13,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":2,"candidate_exhausted":true,"changed_token_positions":49,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":51,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":51,"measurement_hash":"285bbf7277bb1e36d6be3c58b925351231b6502b2c728b1ecae9b7cd22f1fce5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","lexical-for-example-for-instance"],"token_delta":1,"tuple_leak_window_count":51}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":62,"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":10,"measurement_hash":"6d871325cd13b7693c965df35157585064944dae3484b118ad708f936c471cba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":59,"selected_count":14,"selected_rule_ids":["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","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":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"90312810b06d0348de876bb267f9af64a19126748cfc817d9ea571a0a72cf5cf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":59,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-complementizer-that-insert","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":40,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":40,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":40,"measurement_hash":"ee29a4504bfea8f42573a2b9df97efbeffbb6a9d5ec69f05e7435bc0e53c5dc6","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-insert-and","cycle7-syntax-complementizer-that-insert","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":40}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":47,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":36,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":36,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"a763c3d5f5eb6453d965fc6612b9ddc20972e690691ee04e98eabcdc0dc03f6e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["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-comma","surface-space-after-any-word","surface-space-after-period","surface-space-after-period","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":53,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":29,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"86759204d7836965fcec50444a3f4988195108543129a99f713e6ced6ced0ab5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":36,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":10,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":22,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":22,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":22,"measurement_hash":"8d9e0999bd5edfdcee2414463fd7a0443eb0cd9e6be8dce424e28d79169ff91d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":36,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":22}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":8,"measurement_hash":"06737c6526e6e9d5b69c10dc96994a45a8b05e669bf6d5a9f89ce63a3989d66e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"root_window_count":44,"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","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-before-sentence"],"token_delta":14,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":39,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f7c652096fd99ec73333bb3433df05a25437898cf9c0858756642c7073cca0c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":44,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","cycle7-syntax-coord-comma-insert-and","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","cycle7-syntax-coord-comma-drop-and","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":31,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":31,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":31,"measurement_hash":"53cdd179a6d5498a5e581a6e0cbf7e1224322b3d85a0f61f3cad78767de86d6d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":44,"selected_count":4,"selected_rule_ids":["cycle7-syntax-coord-comma-insert-and","cycle7-syntax-coord-comma-insert-and","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":2,"tuple_leak_window_count":31}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"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":12,"measurement_hash":"f97cd2d8650ec694fb2eeabcdf186a4741abaed4ab380d098c01f815339025d7","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":26,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","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":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":12,"measurement_hash":"4f66132da491528ee8ec4919ca5c6d8b7ce43283be3e64d0242d408b91a07c4d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-last","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"],"token_delta":14,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":66,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":46,"measurement_hash":"095eca08f145837e517373e34123872a681a59d2bdc2965b2b846eddddaa5564","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":5,"tuple_leak_window_count":46}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":61,"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":12,"measurement_hash":"298c10cd01d91ce54905c3b746bd27912c2837ab0efe4b6a20f62658c3647a40","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":42,"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-period","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":63,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":11,"measurement_hash":"3adc07d338d91d0b8ba563f70c0a978318c05ab75e77348ca89fa8241e33f0cb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":43,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","contract-they-are","surface-space-after-thing","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":13,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":23,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":46,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":46,"failure_classes":["candidate_exhaustion"],"intact_window_count":46,"measurement_hash":"f9fa4c7999bb827f9847e77610a8e3cd7f21d73eedc5afa6d9d0586e2b1103d0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["lexical-prenominal-open-real-world","cycle7-format-sentence-period-newline","contract-they-are"],"token_delta":0,"tuple_leak_window_count":46}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":64,"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":6,"measurement_hash":"39317e06215b05b533876a0acbcf7e4df2a4e6688cad19a0621227941c29d9ba","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":52,"selected_count":14,"selected_rule_ids":["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-period","surface-space-after-any-word","contract-are-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":68,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":37,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"9b1df7d89bb53f59026823ec24ac7d912084c97de672e936acd405da4ea70595","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":52,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","contract-are-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_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":29,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":29,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":29,"measurement_hash":"5449377510b228f0bc8e2f3908de3d3de9b23c1c8617c612ad9e2b80acc0c8d9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-are-not","cycle7-format-sentence-period-newline"],"token_delta":4,"tuple_leak_window_count":29}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":false,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":27,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":27,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"ef59dce72a8003a15301fcb7eaf54b91159ca42a2fe4d673ce5329220fb27817","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":44,"root_window_count":27,"selected_count":13,"selected_rule_ids":["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","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":false,"candidate_count":64,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":26,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":26,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":1,"measurement_hash":"f0a926b4be54b5513b0ed79d9e765d13182e6910010a6ef0e1cff6d681c1202e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":27,"selected_count":12,"selected_rule_ids":["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","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":12,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":true,"changed_token_positions":56,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":20,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":21,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":20,"measurement_hash":"a40e9ceeaf618761664d05db946968669fe4cf61d9c2ba9d9157bcf6506ae2c3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":27,"selected_count":5,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":21}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b1-structured_instructional-watermarked"}],"seed_base":860000} diff --git a/evidence/cycle7-stage-b-2026-08-25/samples.json b/evidence/cycle7-stage-b-2026-08-25/samples.json new file mode 100644 index 00000000..cab179f9 --- /dev/null +++ b/evidence/cycle7-stage-b-2026-08-25/samples.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b1-samples-v1","artifact_hash":"c345daf7233c18058052f34b16cbc905572579f362b914600372a601f37b9cd7","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","samples":[{"domain":"general_explanatory","label":"unwatermarked","prompt":"Explain in plain English why independent replication matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-b1-general_explanatory-unwatermarked","seed":860000,"text":" Write a long sentence with no obvious, grammatical mistakes. Use clear language such as \"This is what I see.\"\n\nMake your data available to anyone who is interested.\n\nGet lots of data from your source data.\n\nUse common data sources to your advantage.\n\nFor example, you might","text_sha256":"e6cdf16a797ccb7010ad962bb16e1ab3a025d9f877134b0e3c98cfa94bc77087"},{"domain":"general_explanatory","label":"watermarked","prompt":"Explain in plain English why independent replication matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-b1-general_explanatory-watermarked","seed":860000,"text":" Use a list of all authors in a single paper. Keep the list of authors in a single file. Read the full description of your paper and the whole paper in a single online journal.\n\nPlease note that the goal of this article is to help you understand the different ways that you can perform independent replication. It","text_sha256":"21e588d91c7d5b08e7c66bb26dc0eed83d1d91d57d91813ba6056eaf51ad8d6e"},{"domain":"technical_explanation","label":"unwatermarked","prompt":"Give a technical explanation of independent replication in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-b1-technical_explanation-unwatermarked","seed":860032,"text":"\n\n3. Use separate replication experiments. Use separate replication experiments. Define the main idea, one failure mode, and one validation check.\n\n4. Use multiple replication experiments. Use multiple replication experiments. Define the main idea, one failure mode, and one validation check.\n\n5. Use an","text_sha256":"8bf82abe73cf2d77002159797fe5b546db167fad7a73258e28c975d44be3d777"},{"domain":"technical_explanation","label":"watermarked","prompt":"Give a technical explanation of independent replication in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-b1-technical_explanation-watermarked","seed":860032,"text":" Create a log file that describes the errors and the validation checks.\n\n1.1.1. Validation: Create a log file that describes the errors and the validation checks. Define the main idea, one failure mode, and one validation check.\n\n1.1.2. Validation: Create","text_sha256":"366f1c1cca9433ad864b2416e32b02668953cba860b35df059e9f555a68ddc89"},{"domain":"conversational_prose","label":"unwatermarked","prompt":"Answer a colleague who asks why independent replication matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-b1-conversational_prose-unwatermarked","seed":860065,"text":"\n\nDon't use a \"spoiler\" or a \"no-brainer\" line. Use one of these as a starting point:\n\n\"The last time we looked at the data, it's clearly not conclusive that replication is good for the health of the economy.\"\n\nA strong case can be made","text_sha256":"3694c4c7217b4d03cf34c2ea3f5e5566ad1fc3cacd8c4c153b3e56331bd19858"},{"domain":"conversational_prose","label":"watermarked","prompt":"Answer a colleague who asks why independent replication matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-b1-conversational_prose-watermarked","seed":860065,"text":" Use real-world examples in your article.\n\nThis method works best with those who are familiar with their work. The more you practice with a person, the less likely they are to say the same thing over and over again.\n\nThe second most common mistake I see when trying to find good articles about a","text_sha256":"a69929b4ae53870b899ba493ed9701ee581d700910ccb216110d717ab6573287"},{"domain":"structured_instructional","label":"unwatermarked","prompt":"Write a short three-step instruction for applying independent replication in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-b1-structured_instructional-unwatermarked","seed":860096,"text":" Write a sequence of steps for applying a replication. Write each step as a word and always end with a single letter. The steps you write with are the steps in the experiment. The steps in the experiment are not optional but should be followed in some way. The steps in the experiment are the steps in the experiment that","text_sha256":"293c95b2fdc14c6fab988d8877e64186444d5dda0e28d18bda5109f517258bf9"},{"domain":"structured_instructional","label":"watermarked","prompt":"Write a short three-step instruction for applying independent replication in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-b1-structured_instructional-watermarked","seed":860096,"text":" Use a list of the words or phrases to describe the experiment. Use a word to describe the experiment. Use a word to describe the experiment.\n\nWrite a word or phrase to describe the experiment. Use a word or phrase to describe the experiment. Use a word or phrase to describe the experiment. Use a word","text_sha256":"d870da2accd740d0a8bded64e249f3559cc117a2584a2b730233c919dc9f7254"}],"seed_base":860000,"topic":"independent replication"} diff --git a/fuckmark/cycle7/__init__.py b/fuckmark/cycle7/__init__.py index 3c5a81dd..bffab47e 100644 --- a/fuckmark/cycle7/__init__.py +++ b/fuckmark/cycle7/__init__.py @@ -9,6 +9,7 @@ CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_B1_TOPIC, CYCLE7_VALIDATION_SEED_BASE, + CYCLE7_VALIDATION_TOPIC, SPENT_CONFIRMATION_SEED_BASES, SPENT_DEVELOPMENT_SEED_BASES, assert_development_seed, @@ -35,6 +36,7 @@ "CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE", "CYCLE7_STAGE_B1_TOPIC", "CYCLE7_VALIDATION_SEED_BASE", + "CYCLE7_VALIDATION_TOPIC", "SPENT_CONFIRMATION_SEED_BASES", "SPENT_DEVELOPMENT_SEED_BASES", "WHITESPACE_COLLAPSE_VERSION", diff --git a/fuckmark/cycle7/ledger.py b/fuckmark/cycle7/ledger.py index 763e00a7..e3410dc5 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -30,6 +30,7 @@ CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000,) CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (860_000,) CYCLE7_VALIDATION_SEED_BASE = 820_000 +CYCLE7_VALIDATION_TOPIC = "held-out evaluation" CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) CYCLE7_STAGE_B1_TOPIC = "independent replication" @@ -57,13 +58,16 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "stage_b1_exploratory_seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, "stage_b1_topic": CYCLE7_STAGE_B1_TOPIC, "validation_development_seed_base": CYCLE7_VALIDATION_SEED_BASE, + "validation_topic": CYCLE7_VALIDATION_TOPIC, "confirmation_reserved_seed_bases": list(CYCLE7_CONFIRMATION_RESERVED_SEED_BASES), "selection_rule": ( "Confirmation-reserved seeds were chosen as unused 10k blocks " "without inspecting detector outcomes. Do not promote exploratory " "or validation seeds into confirmation after seeing scores. " "Seed 860000 and topic 'independent replication' were frozen before " - "any Stage B generation or detector look." + "any Stage B generation or detector look. " + "Seed 820000 and topic 'held-out evaluation' were frozen before " + "any validation generation or detector look." ), "spent_corpus_rule": ( "Do not use 720000, 730000, 760000, 770000, or 780000 as " diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py index 96aac375..b44d24c0 100644 --- a/fuckmark/cycle7/stage_b.py +++ b/fuckmark/cycle7/stage_b.py @@ -43,7 +43,7 @@ def classify_stage_b_density( *, density_summary: Mapping[str, object], collapsed_intact_mean: float | None = None, - source_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"]) @@ -65,14 +65,20 @@ def classify_stage_b_density( reasons.append( "coordinating-conjunction commas supply a large share of non-format density" ) - if collapsed_intact_mean is not None and source_intact_mean is not None: - if collapsed_intact_mean <= source_intact_mean * 0.5: - reasons.append("collapsed intact root windows dropped by at least half versus the source") + 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") + reasons.append("collapsed intact root windows remain high relative to the source root") if mean_candidates < 4: decision = INSUFFICIENT_EVIDENCE - elif collapsed_intact_mean is not None and source_intact_mean is not None and collapsed_intact_mean > source_intact_mean * 0.75: + 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: @@ -87,6 +93,7 @@ def classify_stage_b_density( "mean_coord_comma_candidate_count": mean_coord, "mean_nonformat_candidate_count": residual_mean, "mean_punctuation_candidate_count": punctuation_mean, + "collapsed_intact_fraction_of_root": collapsed_fraction, "notes": ( "Stage B is development-only. Seeds 830000/840000/850000 were not inspected. " "Seed 820000 remains unused validation until a catalog freeze." @@ -124,6 +131,7 @@ def geometry_intact_means( intact = [] collapsed_intact = [] selected = [] + roots = [] for sample in samples: measurement = measure_arm( arm_id="cycle7_durable", @@ -136,9 +144,14 @@ def geometry_intact_means( intact.append(measurement.intact_window_count) collapsed_intact.append(measurement.collapsed_intact_window_count) selected.append(measurement.selected_count) + roots.append(measurement.root_window_count) n = len(samples) + root_mean = sum(roots) / n + collapsed_mean = sum(collapsed_intact) / n return { "mean_selected_count": sum(selected) / n, + "mean_root_window_count": root_mean, "mean_intact_window_count": sum(intact) / n, - "mean_collapsed_intact_window_count": sum(collapsed_intact) / n, + "mean_collapsed_intact_window_count": collapsed_mean, + "collapsed_intact_fraction_of_root": collapsed_mean / root_mean if root_mean else 1.0, } diff --git a/fuckmark/cycle7_stage_b_hf.py b/fuckmark/cycle7_stage_b_hf.py index ddf8d86b..d7ec2592 100644 --- a/fuckmark/cycle7_stage_b_hf.py +++ b/fuckmark/cycle7_stage_b_hf.py @@ -20,6 +20,10 @@ from .cycle7.ledger import ( CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_B1_TOPIC, + CYCLE7_VALIDATION_ROLE, + CYCLE7_VALIDATION_SEED_BASE, + CYCLE7_VALIDATION_TOPIC, + assert_development_seed, assert_rule_construction_seed, ) from .cycle7.stage_b import classify_stage_b_density, density_artifact, geometry_intact_means @@ -37,17 +41,27 @@ CYCLE7_STAGE_B_DETECTOR_VERSION = "cycle7-stage-b-detector-compare-v1" -def _generate_stage_b1_samples(backend: HuggingFaceTinyDevBackend, seed_base: int) -> tuple[dict[str, object], ...]: - assert_rule_construction_seed(seed_base) +def _generate_stage_b_samples( + backend: HuggingFaceTinyDevBackend, + seed_base: int, + topic: str, + sample_prefix: str, +) -> tuple[dict[str, object], ...]: samples: list[dict[str, object]] = [] for pair_index, domain in enumerate(CorpusDomain): - prompt = _STAGE_A_TEMPLATES[domain].format(topic=CYCLE7_STAGE_B1_TOPIC) + prompt = _STAGE_A_TEMPLATES[domain].format(topic=topic) pair_seed_base = seed_base + pair_index * TINY_DEV_PAIR_SEED_STRIDE accepted = None for attempt in range(TINY_DEV_DEFAULT_MAX_ATTEMPTS): seed = pair_seed_base + attempt - control = backend.generate(prompt, seed, watermarked=False) - watermarked = backend.generate(prompt, seed, watermarked=True) + try: + control = backend.generate(prompt, seed, watermarked=False) + watermarked = backend.generate(prompt, seed, watermarked=True) + except RuntimeError as error: + message = str(error) + if "empty decoded continuation" not in message and "text-only re-encoding" not in message: + raise + continue if len(control.continuation_token_ids) != TINY_DEV_TARGET_LENGTH: continue if len(watermarked.continuation_token_ids) != TINY_DEV_TARGET_LENGTH: @@ -57,13 +71,13 @@ def _generate_stage_b1_samples(backend: HuggingFaceTinyDevBackend, seed_base: in accepted = (seed, control, watermarked) break if accepted is None: - raise RuntimeError(f"Cycle 7 Stage B1 failed to generate a pair for {domain.value}") + raise RuntimeError(f"Cycle 7 Stage B failed to generate a pair for {domain.value}") seed, control, watermarked = accepted for label, generated in ( (WatermarkLabel.UNWATERMARKED, control), (WatermarkLabel.WATERMARKED, watermarked), ): - sample_id = f"cycle7-stage-b1-{domain.value}-{label.value}" + sample_id = f"{sample_prefix}-{domain.value}-{label.value}" samples.append( { "sample_id": sample_id, @@ -79,10 +93,21 @@ def _generate_stage_b1_samples(backend: HuggingFaceTinyDevBackend, seed_base: in return tuple(samples) +def _generate_stage_b1_samples(backend: HuggingFaceTinyDevBackend, seed_base: int) -> tuple[dict[str, object], ...]: + assert_rule_construction_seed(seed_base) + return _generate_stage_b_samples( + backend, + seed_base, + CYCLE7_STAGE_B1_TOPIC, + "cycle7-stage-b1", + ) + + def _geometry_artifact( samples: tuple[dict[str, object], ...], tokenizer: Any, identity_hash: str, + seed_base: int, ) -> dict[str, object]: rows = [] for sample in samples: @@ -106,7 +131,7 @@ def _geometry_artifact( intact = geometry_intact_means(durable_samples, tokenizer, identity_hash) payload = { "algorithm_version": "cycle7-stage-b-geometry-v1", - "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + "seed_base": seed_base, "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, "detector_access_used_for_selection": False, "rows": tuple(rows), @@ -116,34 +141,39 @@ def _geometry_artifact( return {**payload, "artifact_hash": sha256_json({k: v for k, v in payload.items() if k != "artifact_hash"})} -def run_stage_b1( +def run_stage_b( *, + seed_base: int, + topic: str, + stage: str, + sample_prefix: str, + admit, device: str = "cpu", skip_detector: bool = True, samples_from: Path | None = None, ) -> dict[str, object]: - assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) + admit(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"]) != CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE: - raise ValueError("Stage B1 sample file seed_base does not match the frozen ledger") + if int(previous["seed_base"]) != seed_base: + raise ValueError("Stage B sample file seed_base does not match the requested ledger seed") else: - samples = _generate_stage_b1_samples(backend, CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) + samples = _generate_stage_b_samples(backend, seed_base, topic, sample_prefix) density_samples = tuple( {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples ) density = density_artifact( density_samples, - seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + seed_base=seed_base, catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, ) - geometry = _geometry_artifact(samples, tokenizer, identity_hash) + 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"]), - source_intact_mean=float(geometry["durable_intact_means"]["mean_intact_window_count"]), + source_root_mean=float(geometry["durable_intact_means"]["mean_root_window_count"]), ) detector = None if not skip_detector: @@ -160,9 +190,9 @@ def run_stage_b1( detector = { **{k: v for k, v in detector.items() if k != "artifact_hash"}, "algorithm_version": CYCLE7_STAGE_B_DETECTOR_VERSION, - "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, - "stage": "B1", - "topic": CYCLE7_STAGE_B1_TOPIC, + "seed_base": seed_base, + "stage": stage, + "topic": topic, } detector = { **detector, @@ -174,9 +204,51 @@ def run_stage_b1( "geometry": geometry, "decision": density_decision, "detector": detector, + "seed_base": seed_base, + "topic": topic, + "stage": stage, } +def run_stage_b1( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + return run_stage_b( + seed_base=CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, + topic=CYCLE7_STAGE_B1_TOPIC, + stage="B1", + sample_prefix="cycle7-stage-b1", + admit=assert_rule_construction_seed, + device=device, + skip_detector=skip_detector, + samples_from=samples_from, + ) + + +def run_stage_b_validation( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + def _admit(seed_base: int) -> None: + assert_development_seed(seed_base, role=CYCLE7_VALIDATION_ROLE) + + return run_stage_b( + seed_base=CYCLE7_VALIDATION_SEED_BASE, + topic=CYCLE7_VALIDATION_TOPIC, + stage="B3", + sample_prefix="cycle7-stage-b3", + admit=_admit, + device=device, + skip_detector=skip_detector, + samples_from=samples_from, + ) + + def main(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-b") parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") @@ -188,18 +260,29 @@ def main(argv: list[str] | None = None) -> int: 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 - bundle = run_stage_b1( - device=args.device, - skip_detector=skip_detector, - samples_from=args.samples_from, - ) + if args.validation: + if args.output_dir == Path("evidence/cycle7-stage-b-2026-08-25"): + args.output_dir = Path("evidence/cycle7-stage-b-validation-820000-2026-08-25") + bundle = run_stage_b_validation( + device=args.device, + skip_detector=skip_detector, + samples_from=args.samples_from, + ) + else: + bundle = run_stage_b1( + 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-b1-samples-v1", - "seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, - "topic": CYCLE7_STAGE_B1_TOPIC, + "algorithm_version": "cycle7-stage-b-samples-v1", + "seed_base": bundle["seed_base"], + "topic": bundle["topic"], + "stage": bundle["stage"], "durable_catalog_version": CYCLE7_DURABLE_RULE_CATALOG_VERSION, "samples": tuple( { diff --git a/tests/test_cycle7_stage_b.py b/tests/test_cycle7_stage_b.py index 8322e6b6..157dd6c7 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -11,6 +11,7 @@ CYCLE7_STAGE_B1_TOPIC, CYCLE7_USED_EXPLORATORY_SEED_BASES, CYCLE7_VALIDATION_SEED_BASE, + CYCLE7_VALIDATION_TOPIC, assert_development_seed, assert_rule_construction_seed, cycle7_seed_ledger_payload, @@ -33,11 +34,13 @@ def test_stage_b_catalog_and_ledger_identities() -> None: assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v2" 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,) assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (860000,) payload = cycle7_seed_ledger_payload() assert payload["stage_b1_exploratory_seed_base"] == 860000 assert payload["stage_b1_topic"] == "independent replication" + assert payload["validation_topic"] == "held-out evaluation" def test_rule_construction_admits_860000_and_blocks_spent_or_reserved_seeds() -> None: @@ -79,6 +82,27 @@ def test_stage_b_density_classifier_on_construction_fixtures() -> None: assert artifact["artifact_hash"] +def test_stage_b_classifier_uses_root_windows_not_post_edit_intact() -> None: + summary = { + "mean_candidate_count": 4.25, + "mean_format_candidate_count": 2.5, + "mean_coord_comma_candidate_count": 0.75, + } + equal_to_post_edit = classify_stage_b_density( + density_summary=summary, + collapsed_intact_mean=35.625, + source_root_mean=35.625, + ) + assert equal_to_post_edit["decision"] == INSUFFICIENT_EVIDENCE + versus_root = classify_stage_b_density( + density_summary=summary, + collapsed_intact_mean=35.625, + source_root_mean=49.75, + ) + assert versus_root["decision"] == PROMISING_DEVELOPMENT + assert versus_root["collapsed_intact_fraction_of_root"] == 35.625 / 49.75 + + def test_stage_b_classifier_keeps_low_density_as_insufficient() -> None: summary = { "mean_candidate_count": 1.5, From 768fa56cfa9a3dbb06ca51189329b71f16912c2d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 20:52:26 +0000 Subject: [PATCH 3/7] Record Stage B3 validation failure on seed 820000. Density and collapse-surviving geometry replicate catalog v3, but the seed-860000 durable 2/4 detector reduction does not. Overall Stage B remains INSUFFICIENT_EVIDENCE. Do not retune on 820000. Co-authored-by: Byte271 --- docs/cycle7/README.md | 4 +- docs/cycle7/seed-ledger.md | 4 +- docs/cycle7/stage-b-decision.md | 45 +++++++++++++++++-- .../decision.json | 1 + .../density.json | 1 + .../detector-compare.json | 1 + .../geometry.json | 1 + .../samples.json | 1 + fuckmark/cycle7/ledger.py | 2 + fuckmark/cycle7/stage_b.py | 2 +- tests/test_cycle7_stage_b.py | 1 + 11 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 evidence/cycle7-stage-b-validation-820000-2026-08-25/decision.json create mode 100644 evidence/cycle7-stage-b-validation-820000-2026-08-25/density.json create mode 100644 evidence/cycle7-stage-b-validation-820000-2026-08-25/detector-compare.json create mode 100644 evidence/cycle7-stage-b-validation-820000-2026-08-25/geometry.json create mode 100644 evidence/cycle7-stage-b-validation-820000-2026-08-25/samples.json diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 727c768f..ce8e05a4 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -78,9 +78,9 @@ Details: `docs/cycle7/stage-a-decision.md`. ## Stage B -Stage B1 on seed `860000` is **`PROMISING_DEVELOPMENT`**, not formal confirmation. Catalog v3 durable edits reduced collapse-surviving watermarked detections to **2/4** on that tiny corpus (Cycle 6 spacing returned to 4/4 after collapse). Details: `docs/cycle7/stage-b-decision.md`. +Stage B1 on seed `860000` looked **`PROMISING_DEVELOPMENT`** on a tiny detector snapshot (durable 2/4 after collapse). Disjoint validation seed `820000` reproduced density/geometry but **not** the detector reduction (durable 4/4 after collapse). Overall Stage B decision: **`INSUFFICIENT_EVIDENCE`**. Details: `docs/cycle7/stage-b-decision.md`. -Seed `820000` remains disjoint validation with topic `held-out evaluation`. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. +Seed `820000` is spent as validation. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. Not claimed: diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index ec706e82..129b54f9 100644 --- a/docs/cycle7/seed-ledger.md +++ b/docs/cycle7/seed-ledger.md @@ -19,7 +19,7 @@ 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 | yes, development only; frozen topic `independent replication` | -| Validation development | 820000 | only after a Stage B catalog freeze; unused at catalog-v3 construction | +| Validation development | 820000 | used as Stage B3 disjoint validation; do not retune on it | | Confirmation reserved | 830000, 840000, 850000 | **no** until a later frozen confirmation protocol | Do not promote 810000, 820000, or 860000 into confirmation after seeing scores. @@ -28,4 +28,4 @@ Stage A generation used 810000 with pair stride 32, matching TinyDev pairing, on Stage B1 generation uses 860000 with the same pairing rule and topic `independent replication`. Rule-construction generation must call `assert_rule_construction_seed(860000)`. Seed 810000 remains an exploratory seed for Stage A rescoring only. -Validation generation, if run, uses 820000 with topic `held-out evaluation` and `assert_development_seed(820000, role=validation_development)`. That topic was frozen before validation generation. +Validation generation used 820000 with topic `held-out evaluation`. That topic was frozen before validation generation. Do not retune catalog v3 on 820000. diff --git a/docs/cycle7/stage-b-decision.md b/docs/cycle7/stage-b-decision.md index 0ae861ec..475f6427 100644 --- a/docs/cycle7/stage-b-decision.md +++ b/docs/cycle7/stage-b-decision.md @@ -75,13 +75,52 @@ Safe claim: under the frozen SynthID-Text/GPT-2 protocol, catalog v3 durable edi Do not claim: universal watermark removal; proprietary-detector transfer; formal confirmation; human-fidelity validation; that format newlines would survive a wrap/reflow sanitizer. +## Stage B3 disjoint validation (seed 820000) + +Topic `held-out evaluation` was frozen in the ledger before generation. Catalog v3 and cover-greedy v4 were not modified after seeing 820000. + +Artifact hashes: + +- density `502f7e2ee9e4bd27b1582bdcbdfc2ae123050177abf3b225593bc91cddd298f3` +- geometry `ee4942e8783710dae2410739932425a44c27e3d26d23c046d143aca08a249221` +- detector-compare `3da3c015194f6062837db3eb6f0ef7a615909c81733d3bef5f9099c5d0f5e4d3` + +Density/geometry (VERIFIED, replicated): + +- mean durable candidates: **4.0** (B1 was 4.25) +- mean format: 1.875; mean non-format: 2.125 +- collapsed intact / root: **0.735** (B1 was 0.716) + +Detector (VERIFIED; detector reduction did **not** replicate): + +| 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 v3 | 4/4 | **4/4** | 0/4 | **4/4** | 0/4 | +| Combined | 4/4 | **0/4** | 0/4 | **4/4** | 0/4 | + +Unwatermarked transformed controls: 0 detections on every arm and sanitizer. + +The B1 durable 2/4 collapse-surviving reduction is therefore **not** a replicated detector result. It remains SOURCE-BOUND to seed `860000`. + +## Overall Stage B conclusion + +**`INSUFFICIENT_EVIDENCE`** as a Cycle 6 whitespace-collapse replacement. + +Replicated: catalog v3 raises natural durable-site density into a ~4 candidates/sample regime on TinyDev 64-token GPT-2 text; most of that density is sentence-boundary formatting; those edits survive `whitespace-collapse-v1`; intact root windows remain ~72–73% after collapse; Cycle 6 spacing still returns to 4/4 detections after collapse; transformed unwatermarked controls stay clean. + +Not replicated: collapse-surviving detector reduction. + +Do not retune catalog v3 on 820000. Do not inspect 830000/840000/850000. Do not open Cycle 7 formal confirmation. + ## What remains the bottleneck Local semantically conservative English surface equivalence is still sparse on ordinary ~64-token TinyDev GPT-2 prose. Family 4 supplies most of the new sites. Complementizer, discourse, prenominal, and parenthetical families barely fired. TinyDev 64-token GPT-2 continuations are often list-like and truncated; that domain may inflate sentence-boundary density relative to ordinary paragraph prose. ## Next -1. Do not retune catalog v3 on seed 860000. -2. Disjoint validation, if run, uses seed `820000` with topic `held-out evaluation`, frozen before that generation. +1. Do not retune catalog v3 on seeds 860000 or 820000. +2. Seed 820000 is now spent as disjoint validation. A later revised mechanism needs a new unused validation split; do not recycle 820000. 3. Do not inspect 830000/840000/850000. -4. A detector-blind combined scheduler that prefers collapse-surviving families is a HYPOTHESIS supported by 810000 and 860000 geometry. It is not applied to those rows and is not required for a v3 validation split. +4. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. It was not applied after seeing 820000. +5. If more rule-construction data is required, add a **new** exploratory seed to the ledger before inspecting it. diff --git a/evidence/cycle7-stage-b-validation-820000-2026-08-25/decision.json b/evidence/cycle7-stage-b-validation-820000-2026-08-25/decision.json new file mode 100644 index 00000000..8ddea6f0 --- /dev/null +++ b/evidence/cycle7-stage-b-validation-820000-2026-08-25/decision.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-decision-v1","collapsed_intact_fraction_of_root":0.7345132743362832,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":4.0,"mean_coord_comma_candidate_count":0.375,"mean_format_candidate_count":1.875,"mean_nonformat_candidate_count":2.125,"mean_punctuation_candidate_count":2.25,"notes":"Stage B is development-only. Seeds 830000/840000/850000 were not inspected. Seed 820000 remains unused validation until a catalog freeze.","reasons":["mean durable candidate count rose above the Stage A one-to-three site regime","collapsed intact root windows dropped, but more than half of the source windows remain","this is development evidence, not Cycle 7 formal confirmation"]} diff --git a/evidence/cycle7-stage-b-validation-820000-2026-08-25/density.json b/evidence/cycle7-stage-b-validation-820000-2026-08-25/density.json new file mode 100644 index 00000000..2434387e --- /dev/null +++ b/evidence/cycle7-stage-b-validation-820000-2026-08-25/density.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-density-v1","artifact_hash":"502f7e2ee9e4bd27b1582bdcbdfc2ae123050177abf3b225593bc91cddd298f3","decision":{"algorithm_version":"cycle7-stage-b-decision-v1","collapsed_intact_fraction_of_root":null,"decision":"PROMISING_DEVELOPMENT","mean_candidate_count":4.0,"mean_coord_comma_candidate_count":0.375,"mean_format_candidate_count":1.875,"mean_nonformat_candidate_count":2.125,"mean_punctuation_candidate_count":2.25,"notes":"Stage B is development-only. Seeds 830000/840000/850000 were not inspected. Seed 820000 remains unused validation until a catalog freeze.","reasons":["mean durable candidate count rose above the Stage A one-to-three site regime","this is development evidence, not Cycle 7 formal confirmation"]},"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","rows":[{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":4,"candidates_per_64_tokens":6.0952,"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_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":6,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic"],"sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":6,"candidates_per_64_tokens":7.2453,"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":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-but"],"discourse_comma_candidate_count":0,"discourse_rule_ids":[],"format_candidate_count":3,"format_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":6,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-do-not","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","contract-is-not"],"sample_id":"cycle7-stage-b3-general_explanatory-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":3,"candidates_per_64_tokens":3.3103,"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_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":3,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":0,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked"},{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":3,"candidates_per_64_tokens":3.4909,"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_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":3,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"sample_id":"cycle7-stage-b3-technical_explanation-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":5,"candidates_per_64_tokens":6.0377,"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":1,"coord_comma_rule_ids":["cycle7-syntax-coord-comma-drop-or"],"discourse_comma_candidate_count":1,"discourse_rule_ids":["lexical-discourse-drop-comma-however"],"format_candidate_count":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":5,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":6,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["contract-do-not","cycle7-syntax-coord-comma-drop-or","cycle7-format-sentence-period-newline","lexical-discourse-drop-comma-however","contract-you-are"],"sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked"},{"apostrophe_candidate_count":2,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":6,"candidates_per_64_tokens":8.0,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":2,"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":1,"format_rule_ids":["cycle7-format-sentence-period-newline"],"isolated_candidate_count":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":9,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["cycle7-expand-i-have","lexical-apostrophe-ascii-to-typographic","cycle7-syntax-coord-comma-drop-and","expand-have-not","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b3-conversational_prose-watermarked"},{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":1,"candidates_per_64_tokens":1.4222,"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_rule_ids":[],"isolated_candidate_count":1,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["lexical-apostrophe-ascii-to-typographic"],"sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked"},{"apostrophe_candidate_count":1,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"candidate_count":4,"candidates_per_64_tokens":6.0952,"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_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":4,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":2,"prenominal_candidate_count":0,"prenominal_rule_ids":[],"protected_blocked_count":0,"quote_blocked_count":0,"rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-b3-structured_instructional-watermarked"}],"seed_base":820000,"summary":{"max_candidate_count":6,"mean_candidate_count":4.0,"mean_complementizer_candidate_count":0.0,"mean_coord_comma_candidate_count":0.375,"mean_discourse_comma_candidate_count":0.125,"mean_format_candidate_count":1.875,"mean_parenthetical_candidate_count":0.0,"mean_prenominal_candidate_count":0.0,"min_candidate_count":1,"sample_count":8,"zero_candidate_rows":0}} diff --git a/evidence/cycle7-stage-b-validation-820000-2026-08-25/detector-compare.json b/evidence/cycle7-stage-b-validation-820000-2026-08-25/detector-compare.json new file mode 100644 index 00000000..e5b88146 --- /dev/null +++ b/evidence/cycle7-stage-b-validation-820000-2026-08-25/detector-compare.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-detector-compare-v1","artifact_hash":"3da3c015194f6062837db3eb6f0ef7a615909c81733d3bef5f9099c5d0f5e4d3","budget":14,"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","geometry_rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"97a883032506a542b4e1f40f568ca78c7c0b6ff8ed3206ae6d9c08e584b49a35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":54,"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-show","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","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":46,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"4a901a7166ca53354ddba507327d0b11ed0f5903c58ca851a4d2e45c2d7fd0db","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":54,"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-show","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":28,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":43,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":43,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":43,"measurement_hash":"fe0c1cd8f846aa9d6a360b48ddcebcca4df6e4cbdc13c6faef0c6c088de9ff46","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","expand-do-not"],"token_delta":2,"tuple_leak_window_count":43}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"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":9,"measurement_hash":"a9e18227bf2ff6f829277c05baefaed7c0db03dfce9a847fb66ba172ccda8bf4","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-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-without","surface-space-after-any-word","surface-space-after-make","surface-space-after-any-word","surface-space-after-comma","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":62,"candidate_exhausted":false,"changed_token_positions":72,"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":"ea11bbf9585dd4175d71f6972e40915a2ab0d263bebee9bfd3ac49dd373681f3","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-without","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":35,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":35,"measurement_hash":"da4c04b49b21f05e1ca362a80045041429b684077f0f58e619ce253dd1c2b24c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-do-not","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","contract-is-not"],"token_delta":2,"tuple_leak_window_count":35}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b3-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":5,"measurement_hash":"5963ea6bfa59b04d52a62cf1149cee01b1471cefc5d2cbf6c8f35050ffdcb23f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","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"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":70,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"42cb333e0d5fee84d5f1a128dfde9fcecb43d7a6107f55c81e87bce5867a4dbb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":51,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":51,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":34,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":34,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":34,"measurement_hash":"d1fe095cba4c1771722fd8bca38575d9f69c496b74ca8fc21b4a626e62c07ccf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":47,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":34}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":77,"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":11,"measurement_hash":"b417e170fac9edd1c877250d808808a24286bc38845af5e27f93cf587114cbb3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":45,"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-period","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-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":62,"candidate_exhausted":false,"changed_token_positions":77,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"848eaa865095c34587c3ccc82b493aea300df9a8e7d6d9af9154ea9b2c2fef9b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"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","cycle7-format-sentence-period-newline","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":48,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":48,"measurement_hash":"366338de7d42ee8821c133dc94d074d841f4c2f4aab9c748d5afdfe50b826864","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":4,"tuple_leak_window_count":48}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b3-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":70,"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":10,"measurement_hash":"803983bbfc262dfb0a1cd85fed1c8db4649568171ea5200b52f3e2ae7bbfa420","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-few","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-any-word"],"token_delta":12,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":64,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":-2,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"9fe455c55eff3e63d8165dd5043d677bafaeb6bc7d887b213e9bedd28f78367b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-or","surface-space-after-few","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","lexical-discourse-drop-comma-however","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-any-word"],"token_delta":8,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":false,"changed_token_positions":26,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["possible_scheduler_headroom"],"intact_window_count":44,"measurement_hash":"a2f5cd05f85815cf22d2c305df6256a9cd957744b2118b9e7160c00f246d63a8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":4,"selected_rule_ids":["contract-do-not","cycle7-syntax-coord-comma-drop-or","cycle7-format-sentence-period-newline","contract-you-are"],"token_delta":0,"tuple_leak_window_count":44}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":75,"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":14,"measurement_hash":"e46bb19dbec741b046144c57b1a12f7526675754c97b28106c56040efa3079b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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-comma","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":14},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":9,"measurement_hash":"b566fcc9ab3287358f69cfc91ec86e859fbf51bca436551ee08ab2c7ef96e2ea","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"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","cycle7-expand-i-have","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word"],"token_delta":11,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":41,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"59e588d419e1f8f79fc467387be77630a8942799e188ad7354130ead4b14e287","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":4,"selected_rule_ids":["cycle7-expand-i-have","cycle7-syntax-coord-comma-drop-and","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline"],"token_delta":2,"tuple_leak_window_count":41}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b3-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":75,"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":"8f81b923dcf8135fe68c35ced2424a5cbd6d8a7410615d2225bb627815893ed0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":75,"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":"0efefb4ad7addb8aff984b76d0a8848657744270d02aa70b67bf7d8143d249a5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":47,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":55,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":55,"measurement_hash":"5081aa13827eb96bcb04e8b4be7dcc28a38ddbef7e706d91831402bc8b11c6da","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":1,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"token_delta":2,"tuple_leak_window_count":55}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":52,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":52,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"4170915bc102002f029c7008a58ad87b20daf03edee7a3fde1e55dcbd7dcf747","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":28,"root_window_count":52,"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","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"e1405c472116286587ebd67833b3068f22fa5f32d867dcd467e7eaa80f313d6c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":52,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":32,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":32,"measurement_hash":"0d0a9aa22486c00a2ae2663dce35fd816c0d8c965933f68c3fe6a2f6c940f83d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":4,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":32}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b3-structured_instructional-watermarked"}],"model":"openai-community/gpt2","model_revision":"607a30d783dfa663caf39e06633721c8d4cfcd7e","samples":[{"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked","seed":820000,"text":"\n\n2.3.7 Write one coherent paragraph without a list.\n\n2.3.8 Use descriptive phrases in your sentence that show how your sentence has been evaluated. Use a word of at least five descriptive phrases. Don't use sentences that are about a specific subject.\n\n2.3.","text_sha256":"c79dad59f55d3a6849f176aba4aa79be1aa34055cbf6011d4846130954c004d6"},{"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b3-general_explanatory-watermarked","seed":820000,"text":" Use a list of words in your article. Remember that the content of the article may have changed from the original. Do not attempt to write the whole story without giving the reader the opportunity to make corrections. You can read the original paragraph, but this is not required.\n\nExamples\n\nCriminal Law: Use","text_sha256":"19cec4766922a4b7f80873452869c7fb81cc5c0b7ba5dc803e1c43ceb1380a42"},{"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked","seed":820032,"text":" The first test is to determine whether the results are in a reliable state. The second test is to determine whether the result is in a reliable state. The third test is to determine whether the result is in a non-significant state. To ensure stability, ensure the tests are run as well as possible in a controlled environment","text_sha256":"457a75d7b28faab0c86e92fa7fe4439b4cd43ce03864d5b1277fa45c8eac69bd"},{"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b3-technical_explanation-watermarked","seed":820032,"text":" The first test and validation check must be conducted in a closed environment. A closed environment is a small, non-destructive environment, which allows any user to interact with a test or validation. A closed environment has a central location that allows an attacker to perform any action, whether it is to perform a user's own","text_sha256":"715cb27fa20d1921898e75b2d2310b755fe6aeb232ba2e448233f765824eb82e"},{"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked","seed":820064,"text":" Do not be afraid to use a word from other sources, or even a few words from one source.\n\nTo summarize, these three points apply to most companies. However, if you are a software developer, you will want to start with basic and simple techniques to get started with testing and testing.\n\nOne","text_sha256":"63987d6fc1301be27764e4df73e579d3a3fe8b6b79f1628829a3a86afcde96bd"},{"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b3-conversational_prose-watermarked","seed":820064,"text":" Use a simple but informative presentation that is concise and clearly, not an imprecise but effective one.\n\nI've also used the phrase \"troublemaker\" more than once, and I haven't had to write it down in my journal or in an article. But what about the concept of \"t","text_sha256":"1e62f8156c062dabdb62d63d30d614b1bec60679698adc08cd8120b692f5f7ae"},{"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked","seed":820096,"text":"\n\nTest the result using a single-page program.\n\nIn this article, we'll show you how to develop a full-fledged machine learning algorithm that can perform full-blown evaluations in a controlled environment with real-time instructions.\n\nYou can learn more about Machine Learning in this article, including some","text_sha256":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"},{"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b3-structured_instructional-watermarked","seed":820096,"text":" Use a series of simple words to describe what's being studied.\n\n1.1.1.1 Break the sentence. Start by repeating the same word twice over. Continue by using a word with multiple words. Make sure to keep your sentences concise.\n\n1.1.1.2 Repeat the same","text_sha256":"e56d752a34dcb1525fca72a1b52dd228e410dbfdf41243921118a42bba54c0cb"}],"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":42,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"97a883032506a542b4e1f40f568ca78c7c0b6ff8ed3206ae6d9c08e584b49a35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":54,"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-show","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47357837635615413,"sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5053847296494355,"text_hash":"998276cb07ce54bb30f2524918e067511fbaa7752913586ffe15bf73962854d1"},"nfkc":{"detected":false,"score":0.5053847296494355,"text_hash":"998276cb07ce54bb30f2524918e067511fbaa7752913586ffe15bf73962854d1"},"nfkc_cf_strip":{"detected":false,"score":0.5053847296494355,"text_hash":"998276cb07ce54bb30f2524918e067511fbaa7752913586ffe15bf73962854d1"},"raw":{"detected":false,"score":0.5053847296494355,"text_hash":"998276cb07ce54bb30f2524918e067511fbaa7752913586ffe15bf73962854d1"},"ws_collapse":{"detected":false,"score":0.47357837635615413,"text_hash":"c79dad59f55d3a6849f176aba4aa79be1aa34055cbf6011d4846130954c004d6"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.47357837635615413,"text_hash":"c79dad59f55d3a6849f176aba4aa79be1aa34055cbf6011d4846130954c004d6"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":28,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":43,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":43,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":43,"measurement_hash":"fe0c1cd8f846aa9d6a360b48ddcebcca4df6e4cbdc13c6faef0c6c088de9ff46","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","expand-do-not"],"token_delta":2,"tuple_leak_window_count":43},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47357837635615413,"sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"},"nfkc":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"},"nfkc_cf_strip":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"},"raw":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"},"ws_collapse":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5043740981240982,"text_hash":"3eac2207e3ff3430abb9435c5581e2a625944762a31ebfc1e695ddce93120a13"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"4a901a7166ca53354ddba507327d0b11ed0f5903c58ca851a4d2e45c2d7fd0db","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":54,"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-show","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47357837635615413,"sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.505050505050505,"text_hash":"ca1c84746dfa5365651706bffb5b8eba17f3415f77f14e86023ecfdb51fd1e3f"},"nfkc":{"detected":false,"score":0.505050505050505,"text_hash":"ca1c84746dfa5365651706bffb5b8eba17f3415f77f14e86023ecfdb51fd1e3f"},"nfkc_cf_strip":{"detected":false,"score":0.505050505050505,"text_hash":"ca1c84746dfa5365651706bffb5b8eba17f3415f77f14e86023ecfdb51fd1e3f"},"raw":{"detected":false,"score":0.505050505050505,"text_hash":"ca1c84746dfa5365651706bffb5b8eba17f3415f77f14e86023ecfdb51fd1e3f"},"ws_collapse":{"detected":false,"score":0.47901744719926537,"text_hash":"863c05ed85fec5c9c4743d11909ecee2c7f92f1420b05d72ac63cdd3ff84353d"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.47901744719926537,"text_hash":"863c05ed85fec5c9c4743d11909ecee2c7f92f1420b05d72ac63cdd3ff84353d"}}},{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"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":9,"measurement_hash":"a9e18227bf2ff6f829277c05baefaed7c0db03dfce9a847fb66ba172ccda8bf4","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-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-without","surface-space-after-any-word","surface-space-after-make","surface-space-after-any-word","surface-space-after-comma","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.6910774410774411,"sample_id":"cycle7-stage-b3-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5006142506142506,"text_hash":"953ce22892fbc54a3a2af0284a14ecec0b39123e4e6ddfe10d4265e6382b2713"},"nfkc":{"detected":false,"score":0.5006142506142506,"text_hash":"953ce22892fbc54a3a2af0284a14ecec0b39123e4e6ddfe10d4265e6382b2713"},"nfkc_cf_strip":{"detected":false,"score":0.5006142506142506,"text_hash":"953ce22892fbc54a3a2af0284a14ecec0b39123e4e6ddfe10d4265e6382b2713"},"raw":{"detected":false,"score":0.5006142506142506,"text_hash":"953ce22892fbc54a3a2af0284a14ecec0b39123e4e6ddfe10d4265e6382b2713"},"ws_collapse":{"detected":true,"score":0.6910774410774411,"text_hash":"19cec4766922a4b7f80873452869c7fb81cc5c0b7ba5dc803e1c43ceb1380a42"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6910774410774411,"text_hash":"19cec4766922a4b7f80873452869c7fb81cc5c0b7ba5dc803e1c43ceb1380a42"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":35,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":35,"measurement_hash":"da4c04b49b21f05e1ca362a80045041429b684077f0f58e619ce253dd1c2b24c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-do-not","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","contract-is-not"],"token_delta":2,"tuple_leak_window_count":35},"label":"watermarked","pristine_detected":true,"pristine_score":0.6910774410774411,"sample_id":"cycle7-stage-b3-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"},"nfkc":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"},"nfkc_cf_strip":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"},"raw":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"},"ws_collapse":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6254480286738351,"text_hash":"9cf8b80702d0cfbe65e05b72135ea6592d71299f658db145201cef500be3192e"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":62,"candidate_exhausted":false,"changed_token_positions":72,"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":"ea11bbf9585dd4175d71f6972e40915a2ab0d263bebee9bfd3ac49dd373681f3","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-without","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"label":"watermarked","pristine_detected":true,"pristine_score":0.6910774410774411,"sample_id":"cycle7-stage-b3-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5024200336700336,"text_hash":"9df977a879eb8d1f0daf7874c2ca7b7e9bb614043ee58820bb117cb72c8c9ec4"},"nfkc":{"detected":false,"score":0.5024200336700336,"text_hash":"9df977a879eb8d1f0daf7874c2ca7b7e9bb614043ee58820bb117cb72c8c9ec4"},"nfkc_cf_strip":{"detected":false,"score":0.5024200336700336,"text_hash":"9df977a879eb8d1f0daf7874c2ca7b7e9bb614043ee58820bb117cb72c8c9ec4"},"raw":{"detected":false,"score":0.5024200336700336,"text_hash":"9df977a879eb8d1f0daf7874c2ca7b7e9bb614043ee58820bb117cb72c8c9ec4"},"ws_collapse":{"detected":true,"score":0.6470755946562398,"text_hash":"2198d46c0d146c765f1148ecf567a063326ae305b88d262d1732372c80cc4985"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6470755946562398,"text_hash":"2198d46c0d146c765f1148ecf567a063326ae305b88d262d1732372c80cc4985"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":5,"measurement_hash":"5963ea6bfa59b04d52a62cf1149cee01b1471cefc5d2cbf6c8f35050ffdcb23f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","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"],"token_delta":14,"tuple_leak_window_count":7},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49462712228669675,"sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.43873348873348866,"text_hash":"bfcff9e77691a25d516c20f6372911d4734bccffd581044120bc6283622b881d"},"nfkc":{"detected":false,"score":0.43873348873348866,"text_hash":"bfcff9e77691a25d516c20f6372911d4734bccffd581044120bc6283622b881d"},"nfkc_cf_strip":{"detected":false,"score":0.43873348873348866,"text_hash":"bfcff9e77691a25d516c20f6372911d4734bccffd581044120bc6283622b881d"},"raw":{"detected":false,"score":0.43873348873348866,"text_hash":"bfcff9e77691a25d516c20f6372911d4734bccffd581044120bc6283622b881d"},"ws_collapse":{"detected":false,"score":0.49462712228669675,"text_hash":"457a75d7b28faab0c86e92fa7fe4439b4cd43ce03864d5b1277fa45c8eac69bd"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49462712228669675,"text_hash":"457a75d7b28faab0c86e92fa7fe4439b4cd43ce03864d5b1277fa45c8eac69bd"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":51,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":34,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":34,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":34,"measurement_hash":"d1fe095cba4c1771722fd8bca38575d9f69c496b74ca8fc21b4a626e62c07ccf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":47,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":34},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49462712228669675,"sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"},"nfkc":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"},"nfkc_cf_strip":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"},"raw":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"},"ws_collapse":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.47186147186147187,"text_hash":"e79b9439b6be5156675b61aca8dce3a00b703b49bdab0b9a3d0a41de9ad62c74"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":70,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"42cb333e0d5fee84d5f1a128dfde9fcecb43d7a6107f55c81e87bce5867a4dbb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":51,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":14,"tuple_leak_window_count":7},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.49462712228669675,"sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.43924317804914814,"text_hash":"b9909ae89950eea63788a7a8985d0c2fff4b6fe5055e2a058bd5d686e23eb021"},"nfkc":{"detected":false,"score":0.43924317804914814,"text_hash":"b9909ae89950eea63788a7a8985d0c2fff4b6fe5055e2a058bd5d686e23eb021"},"nfkc_cf_strip":{"detected":false,"score":0.43924317804914814,"text_hash":"b9909ae89950eea63788a7a8985d0c2fff4b6fe5055e2a058bd5d686e23eb021"},"raw":{"detected":false,"score":0.43924317804914814,"text_hash":"b9909ae89950eea63788a7a8985d0c2fff4b6fe5055e2a058bd5d686e23eb021"},"ws_collapse":{"detected":false,"score":0.49206349206349204,"text_hash":"41ee7391d49d5ceeb74245e33048d01db31fd6cc633e5937cf486c5f1f6a1ad2"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49206349206349204,"text_hash":"41ee7391d49d5ceeb74245e33048d01db31fd6cc633e5937cf486c5f1f6a1ad2"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":77,"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":11,"measurement_hash":"b417e170fac9edd1c877250d808808a24286bc38845af5e27f93cf587114cbb3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":45,"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-period","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-comma","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.6356788221195001,"sample_id":"cycle7-stage-b3-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5025598450255985,"text_hash":"2cd6936e08aa342903ca5a13c6d5f53e129175933d549127a67147d89b086cd8"},"nfkc":{"detected":false,"score":0.5025598450255985,"text_hash":"2cd6936e08aa342903ca5a13c6d5f53e129175933d549127a67147d89b086cd8"},"nfkc_cf_strip":{"detected":false,"score":0.5025598450255985,"text_hash":"2cd6936e08aa342903ca5a13c6d5f53e129175933d549127a67147d89b086cd8"},"raw":{"detected":false,"score":0.5025598450255985,"text_hash":"2cd6936e08aa342903ca5a13c6d5f53e129175933d549127a67147d89b086cd8"},"ws_collapse":{"detected":true,"score":0.6356788221195001,"text_hash":"715cb27fa20d1921898e75b2d2310b755fe6aeb232ba2e448233f765824eb82e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6356788221195001,"text_hash":"715cb27fa20d1921898e75b2d2310b755fe6aeb232ba2e448233f765824eb82e"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":48,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":48,"measurement_hash":"366338de7d42ee8821c133dc94d074d841f4c2f4aab9c748d5afdfe50b826864","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":4,"tuple_leak_window_count":48},"label":"watermarked","pristine_detected":true,"pristine_score":0.6356788221195001,"sample_id":"cycle7-stage-b3-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"},"nfkc":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"},"nfkc_cf_strip":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"},"raw":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"},"ws_collapse":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6258960573476703,"text_hash":"80c62b7c938148317e55e253f61b9294ed3124d2c8512c2482f874365eb6362e"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":62,"candidate_exhausted":false,"changed_token_positions":77,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"848eaa865095c34587c3ccc82b493aea300df9a8e7d6d9af9154ea9b2c2fef9b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"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","cycle7-format-sentence-period-newline","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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.6356788221195001,"sample_id":"cycle7-stage-b3-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48372615039281697,"text_hash":"0f7bf4b5eed66426d5fb7f076ef0d49d07d43cde0fdeea525a3c03c93ba40820"},"nfkc":{"detected":false,"score":0.48372615039281697,"text_hash":"0f7bf4b5eed66426d5fb7f076ef0d49d07d43cde0fdeea525a3c03c93ba40820"},"nfkc_cf_strip":{"detected":false,"score":0.48372615039281697,"text_hash":"0f7bf4b5eed66426d5fb7f076ef0d49d07d43cde0fdeea525a3c03c93ba40820"},"raw":{"detected":false,"score":0.48372615039281697,"text_hash":"0f7bf4b5eed66426d5fb7f076ef0d49d07d43cde0fdeea525a3c03c93ba40820"},"ws_collapse":{"detected":true,"score":0.634469696969697,"text_hash":"b43c7c526da34f61d6902d752185a7f45f36bb0d9bafde71599d05f79b346532"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.634469696969697,"text_hash":"b43c7c526da34f61d6902d752185a7f45f36bb0d9bafde71599d05f79b346532"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":70,"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":10,"measurement_hash":"803983bbfc262dfb0a1cd85fed1c8db4649568171ea5200b52f3e2ae7bbfa420","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-few","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-any-word"],"token_delta":12,"tuple_leak_window_count":10},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.43228114478114477,"sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.46219135802469136,"text_hash":"285f1a26e305c5606c44c0aae49cdd5280c68f1425143b6745a78803a446fdcc"},"nfkc":{"detected":false,"score":0.46219135802469136,"text_hash":"285f1a26e305c5606c44c0aae49cdd5280c68f1425143b6745a78803a446fdcc"},"nfkc_cf_strip":{"detected":false,"score":0.46219135802469136,"text_hash":"285f1a26e305c5606c44c0aae49cdd5280c68f1425143b6745a78803a446fdcc"},"raw":{"detected":false,"score":0.46219135802469136,"text_hash":"285f1a26e305c5606c44c0aae49cdd5280c68f1425143b6745a78803a446fdcc"},"ws_collapse":{"detected":false,"score":0.4396885521885522,"text_hash":"073f18d7c05e94e6367aedca06d1898ec8c10115f6838f381a45bd2c872fb54b"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4396885521885522,"text_hash":"073f18d7c05e94e6367aedca06d1898ec8c10115f6838f381a45bd2c872fb54b"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":false,"changed_token_positions":26,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["possible_scheduler_headroom"],"intact_window_count":44,"measurement_hash":"a2f5cd05f85815cf22d2c305df6256a9cd957744b2118b9e7160c00f246d63a8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":4,"selected_rule_ids":["contract-do-not","cycle7-syntax-coord-comma-drop-or","cycle7-format-sentence-period-newline","contract-you-are"],"token_delta":0,"tuple_leak_window_count":44},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.43228114478114477,"sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"},"nfkc":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"},"nfkc_cf_strip":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"},"raw":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"},"ws_collapse":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.42247474747474745,"text_hash":"f950748270c823c3e31d390aa9c60a0e974ce6c1f969a7ee2de05946efc739be"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":64,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":-2,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"9fe455c55eff3e63d8165dd5043d677bafaeb6bc7d887b213e9bedd28f78367b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-or","surface-space-after-few","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","lexical-discourse-drop-comma-however","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-any-word"],"token_delta":8,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.43228114478114477,"sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4574049316696375,"text_hash":"7b761f71f9b96dfb4951eeab61e5a834f8cd7f2e1e09bd944ddb13b726dc8939"},"nfkc":{"detected":false,"score":0.4574049316696375,"text_hash":"7b761f71f9b96dfb4951eeab61e5a834f8cd7f2e1e09bd944ddb13b726dc8939"},"nfkc_cf_strip":{"detected":false,"score":0.4574049316696375,"text_hash":"7b761f71f9b96dfb4951eeab61e5a834f8cd7f2e1e09bd944ddb13b726dc8939"},"raw":{"detected":false,"score":0.4574049316696375,"text_hash":"7b761f71f9b96dfb4951eeab61e5a834f8cd7f2e1e09bd944ddb13b726dc8939"},"ws_collapse":{"detected":false,"score":0.4234151863462208,"text_hash":"ceadd47a136e493b8901341d04a61c6d2b940c57214e049965464b667f09f69f"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4234151863462208,"text_hash":"ceadd47a136e493b8901341d04a61c6d2b940c57214e049965464b667f09f69f"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":75,"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":14,"measurement_hash":"e46bb19dbec741b046144c57b1a12f7526675754c97b28106c56040efa3079b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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-comma","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":14},"label":"watermarked","pristine_detected":true,"pristine_score":0.7106060606060606,"sample_id":"cycle7-stage-b3-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5478091728091729,"text_hash":"cd435706460ece37e5bbe3f4c46b16e25c47d8f4cd9f57b5cb0bb40db6cd50fa"},"nfkc":{"detected":false,"score":0.5478091728091729,"text_hash":"cd435706460ece37e5bbe3f4c46b16e25c47d8f4cd9f57b5cb0bb40db6cd50fa"},"nfkc_cf_strip":{"detected":false,"score":0.5478091728091729,"text_hash":"cd435706460ece37e5bbe3f4c46b16e25c47d8f4cd9f57b5cb0bb40db6cd50fa"},"raw":{"detected":false,"score":0.5478091728091729,"text_hash":"cd435706460ece37e5bbe3f4c46b16e25c47d8f4cd9f57b5cb0bb40db6cd50fa"},"ws_collapse":{"detected":true,"score":0.7106060606060606,"text_hash":"1e62f8156c062dabdb62d63d30d614b1bec60679698adc08cd8120b692f5f7ae"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.7106060606060606,"text_hash":"1e62f8156c062dabdb62d63d30d614b1bec60679698adc08cd8120b692f5f7ae"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":41,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"59e588d419e1f8f79fc467387be77630a8942799e188ad7354130ead4b14e287","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":4,"selected_rule_ids":["cycle7-expand-i-have","cycle7-syntax-coord-comma-drop-and","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline"],"token_delta":2,"tuple_leak_window_count":41},"label":"watermarked","pristine_detected":true,"pristine_score":0.7106060606060606,"sample_id":"cycle7-stage-b3-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"},"nfkc":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"},"nfkc_cf_strip":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"},"raw":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"},"ws_collapse":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6489491691104594,"text_hash":"b1b87421f16bcb8ed86a9abaccdc284b79f063ae164842757422cf44f7b45ed5"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":9,"measurement_hash":"b566fcc9ab3287358f69cfc91ec86e859fbf51bca436551ee08ab2c7ef96e2ea","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"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","cycle7-expand-i-have","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word"],"token_delta":11,"tuple_leak_window_count":9},"label":"watermarked","pristine_detected":true,"pristine_score":0.7106060606060606,"sample_id":"cycle7-stage-b3-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5196685161473893,"text_hash":"d8bd9a7077e7096ce15e3df7a9d3ea329a6362868a2a760122dbf5d94d092117"},"nfkc":{"detected":false,"score":0.5196685161473893,"text_hash":"d8bd9a7077e7096ce15e3df7a9d3ea329a6362868a2a760122dbf5d94d092117"},"nfkc_cf_strip":{"detected":false,"score":0.5196685161473893,"text_hash":"d8bd9a7077e7096ce15e3df7a9d3ea329a6362868a2a760122dbf5d94d092117"},"raw":{"detected":false,"score":0.5196685161473893,"text_hash":"d8bd9a7077e7096ce15e3df7a9d3ea329a6362868a2a760122dbf5d94d092117"},"ws_collapse":{"detected":true,"score":0.66506734006734,"text_hash":"ea5105c04f2bd80b44aec1fc8cf852f9cef01105e98d0b80a1fac1b0e8d667ba"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.66506734006734,"text_hash":"ea5105c04f2bd80b44aec1fc8cf852f9cef01105e98d0b80a1fac1b0e8d667ba"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":75,"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":"8f81b923dcf8135fe68c35ced2424a5cbd6d8a7410615d2225bb627815893ed0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4990319865319865,"sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"nfkc":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"nfkc_cf_strip":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"raw":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"ws_collapse":{"detected":false,"score":0.4990319865319865,"text_hash":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4990319865319865,"text_hash":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":47,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":55,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":55,"measurement_hash":"5081aa13827eb96bcb04e8b4be7dcc28a38ddbef7e706d91831402bc8b11c6da","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":1,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"token_delta":2,"tuple_leak_window_count":55},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4990319865319865,"sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"},"nfkc":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"},"nfkc_cf_strip":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"},"raw":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"},"ws_collapse":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5109970674486803,"text_hash":"3fadc950de5d2da8845dfe8d6683282643ca5330e045c6a514db493255da2395"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":75,"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":"0efefb4ad7addb8aff984b76d0a8848657744270d02aa70b67bf7d8143d249a5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.4990319865319865,"sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"nfkc":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"nfkc_cf_strip":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"raw":{"detected":false,"score":0.4984433374844333,"text_hash":"5f7a7a0a6a6136a987f868181862f73025406a2acb523f5f3e49b25241c3756c"},"ws_collapse":{"detected":false,"score":0.4990319865319865,"text_hash":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4990319865319865,"text_hash":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":52,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":52,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"4170915bc102002f029c7008a58ad87b20daf03edee7a3fde1e55dcbd7dcf747","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":28,"root_window_count":52,"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","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6458818958818959,"sample_id":"cycle7-stage-b3-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5570094888276707,"text_hash":"c9f1f9fae315c6a9ca0b99a78c80da220e0015cc7576532a3c6d305bbb9ddc09"},"nfkc":{"detected":false,"score":0.5570094888276707,"text_hash":"c9f1f9fae315c6a9ca0b99a78c80da220e0015cc7576532a3c6d305bbb9ddc09"},"nfkc_cf_strip":{"detected":false,"score":0.5570094888276707,"text_hash":"c9f1f9fae315c6a9ca0b99a78c80da220e0015cc7576532a3c6d305bbb9ddc09"},"raw":{"detected":false,"score":0.5570094888276707,"text_hash":"c9f1f9fae315c6a9ca0b99a78c80da220e0015cc7576532a3c6d305bbb9ddc09"},"ws_collapse":{"detected":true,"score":0.6458818958818959,"text_hash":"e56d752a34dcb1525fca72a1b52dd228e410dbfdf41243921118a42bba54c0cb"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6458818958818959,"text_hash":"e56d752a34dcb1525fca72a1b52dd228e410dbfdf41243921118a42bba54c0cb"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":32,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":32,"measurement_hash":"0d0a9aa22486c00a2ae2663dce35fd816c0d8c965933f68c3fe6a2f6c940f83d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":4,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":32},"label":"watermarked","pristine_detected":true,"pristine_score":0.6458818958818959,"sample_id":"cycle7-stage-b3-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"},"nfkc":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"},"nfkc_cf_strip":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"},"raw":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"},"ws_collapse":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5583909268119794,"text_hash":"0806ed85c956c5b24f2dc5aae56b093966f52e2cd0e934ba83da7d20f052a191"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"e1405c472116286587ebd67833b3068f22fa5f32d867dcd467e7eaa80f313d6c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":52,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":9},"label":"watermarked","pristine_detected":true,"pristine_score":0.6458818958818959,"sample_id":"cycle7-stage-b3-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5260177532904805,"text_hash":"152532fb6ee45f5993d5d4f54d4bd3128c0bbc2b6092b1b1327eea3eb8be2192"},"nfkc":{"detected":false,"score":0.5260177532904805,"text_hash":"152532fb6ee45f5993d5d4f54d4bd3128c0bbc2b6092b1b1327eea3eb8be2192"},"nfkc_cf_strip":{"detected":false,"score":0.5260177532904805,"text_hash":"152532fb6ee45f5993d5d4f54d4bd3128c0bbc2b6092b1b1327eea3eb8be2192"},"raw":{"detected":false,"score":0.5260177532904805,"text_hash":"152532fb6ee45f5993d5d4f54d4bd3128c0bbc2b6092b1b1327eea3eb8be2192"},"ws_collapse":{"detected":true,"score":0.6328378120830951,"text_hash":"ec3f99e99bb99acf6adfbe768d93b8bfd44d51290c40d2937242e85d8c2e91df"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6328378120830951,"text_hash":"ec3f99e99bb99acf6adfbe768d93b8bfd44d51290c40d2937242e85d8c2e91df"}}}],"secret_access_used_for_selection":false,"seed_base":820000,"stage":"B3","summaries":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","median_raw_watermarked_score":0.5478091728091729,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5269981893191731,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5570094888276707,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6708110549212244},"cycle7_combined":{"arm_id":"cycle7_combined","median_raw_watermarked_score":0.5196685161473893,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.50795811337518,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5260177532904805,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6448626109440929},"cycle7_durable":{"arm_id":"cycle7_durable","median_raw_watermarked_score":0.6258960573476703,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":4,"raw_watermarked_mean_score":0.6146710454859861,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.6489491691104594,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6146710454859861}},"threshold":0.5570987654320988,"topic":"held-out evaluation"} diff --git a/evidence/cycle7-stage-b-validation-820000-2026-08-25/geometry.json b/evidence/cycle7-stage-b-validation-820000-2026-08-25/geometry.json new file mode 100644 index 00000000..39edcbbe --- /dev/null +++ b/evidence/cycle7-stage-b-validation-820000-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":"ee4942e8783710dae2410739932425a44c27e3d26d23c046d143aca08a249221","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","durable_intact_means":{"collapsed_intact_fraction_of_root":0.7345132743362832,"mean_collapsed_intact_window_count":41.5,"mean_intact_window_count":41.5,"mean_root_window_count":56.5,"mean_selected_count":3.5},"rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":9,"measurement_hash":"97a883032506a542b4e1f40f568ca78c7c0b6ff8ed3206ae6d9c08e584b49a35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":27,"root_window_count":54,"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-show","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","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":46,"candidate_exhausted":false,"changed_token_positions":68,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"4a901a7166ca53354ddba507327d0b11ed0f5903c58ca851a4d2e45c2d7fd0db","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":54,"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-show","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":28,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":43,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":43,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":43,"measurement_hash":"fe0c1cd8f846aa9d6a360b48ddcebcca4df6e4cbdc13c6faef0c6c088de9ff46","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","expand-do-not"],"token_delta":2,"tuple_leak_window_count":43}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":58,"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":9,"measurement_hash":"a9e18227bf2ff6f829277c05baefaed7c0db03dfce9a847fb66ba172ccda8bf4","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-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-without","surface-space-after-any-word","surface-space-after-make","surface-space-after-any-word","surface-space-after-comma","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":62,"candidate_exhausted":false,"changed_token_positions":72,"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":"ea11bbf9585dd4175d71f6972e40915a2ab0d263bebee9bfd3ac49dd373681f3","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-without","surface-space-after-any-word","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":35,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":35,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":35,"measurement_hash":"da4c04b49b21f05e1ca362a80045041429b684077f0f58e619ce253dd1c2b24c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":6,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","contract-do-not","cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-but","contract-is-not"],"token_delta":2,"tuple_leak_window_count":35}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-b3-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":67,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":5,"measurement_hash":"5963ea6bfa59b04d52a62cf1149cee01b1471cefc5d2cbf6c8f35050ffdcb23f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":49,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","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"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":70,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":44,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":5,"measurement_hash":"42cb333e0d5fee84d5f1a128dfde9fcecb43d7a6107f55c81e87bce5867a4dbb","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":51,"root_window_count":47,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-whether","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":51,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":34,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":34,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":34,"measurement_hash":"d1fe095cba4c1771722fd8bca38575d9f69c496b74ca8fc21b4a626e62c07ccf","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":47,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":34}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":59,"candidate_exhausted":false,"changed_token_positions":77,"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":11,"measurement_hash":"b417e170fac9edd1c877250d808808a24286bc38845af5e27f93cf587114cbb3","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":45,"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-period","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-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":62,"candidate_exhausted":false,"changed_token_positions":77,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"848eaa865095c34587c3ccc82b493aea300df9a8e7d6d9af9154ea9b2c2fef9b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"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","cycle7-format-sentence-period-newline","surface-space-after-comma","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","cycle7-format-sentence-period-newline","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_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":54,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":48,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":48,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":48,"measurement_hash":"366338de7d42ee8821c133dc94d074d841f4c2f4aab9c748d5afdfe50b826864","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":59,"selected_count":3,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic"],"token_delta":4,"tuple_leak_window_count":48}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-b3-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":70,"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":10,"measurement_hash":"803983bbfc262dfb0a1cd85fed1c8db4649568171ea5200b52f3e2ae7bbfa420","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-comma","surface-space-after-few","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-any-word"],"token_delta":12,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":58,"candidate_exhausted":false,"changed_token_positions":64,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":45,"collapsed_token_delta":-2,"collapsed_tuple_leak_window_count":45,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"9fe455c55eff3e63d8165dd5043d677bafaeb6bc7d887b213e9bedd28f78367b","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"root_window_count":60,"selected_count":14,"selected_rule_ids":["contract-do-not","surface-space-after-any-word","cycle7-syntax-coord-comma-drop-or","surface-space-after-few","surface-space-after-any-word","surface-space-after-comma","surface-space-after-any-word","lexical-discourse-drop-comma-however","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-any-word"],"token_delta":8,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":5,"candidate_exhausted":false,"changed_token_positions":26,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":44,"failure_classes":["possible_scheduler_headroom"],"intact_window_count":44,"measurement_hash":"a2f5cd05f85815cf22d2c305df6256a9cd957744b2118b9e7160c00f246d63a8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":4,"selected_rule_ids":["contract-do-not","cycle7-syntax-coord-comma-drop-or","cycle7-format-sentence-period-newline","contract-you-are"],"token_delta":0,"tuple_leak_window_count":44}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":49,"candidate_exhausted":false,"changed_token_positions":75,"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":14,"measurement_hash":"e46bb19dbec741b046144c57b1a12f7526675754c97b28106c56040efa3079b8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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-comma","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":14},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"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"],"intact_window_count":9,"measurement_hash":"b566fcc9ab3287358f69cfc91ec86e859fbf51bca436551ee08ab2c7ef96e2ea","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":36,"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","cycle7-expand-i-have","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-any-word","cycle7-format-sentence-period-newline","surface-space-after-any-word"],"token_delta":11,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":41,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"59e588d419e1f8f79fc467387be77630a8942799e188ad7354130ead4b14e287","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":4,"selected_rule_ids":["cycle7-expand-i-have","cycle7-syntax-coord-comma-drop-and","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline"],"token_delta":2,"tuple_leak_window_count":41}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-b3-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":45,"candidate_exhausted":false,"changed_token_positions":75,"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":"8f81b923dcf8135fe68c35ced2424a5cbd6d8a7410615d2225bb627815893ed0","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":31,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":46,"candidate_exhausted":false,"changed_token_positions":75,"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":"0efefb4ad7addb8aff984b76d0a8848657744270d02aa70b67bf7d8143d249a5","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":47,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":55,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":55,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":55,"measurement_hash":"5081aa13827eb96bcb04e8b4be7dcc28a38ddbef7e706d91831402bc8b11c6da","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":1,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic"],"token_delta":2,"tuple_leak_window_count":55}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":44,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":52,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":52,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":10,"measurement_hash":"4170915bc102002f029c7008a58ad87b20daf03edee7a3fde1e55dcbd7dcf747","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":28,"root_window_count":52,"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","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":48,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":47,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":47,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":9,"measurement_hash":"e1405c472116286587ebd67833b3068f22fa5f32d867dcd467e7eaa80f313d6c","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":29,"root_window_count":52,"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","cycle7-format-sentence-period-newline","surface-space-after-any-word","surface-space-after-period","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"],"token_delta":14,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":55,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":32,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":32,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":32,"measurement_hash":"0d0a9aa22486c00a2ae2663dce35fd816c0d8c965933f68c3fe6a2f6c940f83d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":52,"selected_count":4,"selected_rule_ids":["lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":32}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-b3-structured_instructional-watermarked"}],"seed_base":820000} diff --git a/evidence/cycle7-stage-b-validation-820000-2026-08-25/samples.json b/evidence/cycle7-stage-b-validation-820000-2026-08-25/samples.json new file mode 100644 index 00000000..b4361760 --- /dev/null +++ b/evidence/cycle7-stage-b-validation-820000-2026-08-25/samples.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-b-samples-v1","artifact_hash":"a4bcaeff2c434e7a0b32f1c1d69aa6758050341cf5e389b551ef1cfe38d3be43","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v3","samples":[{"domain":"general_explanatory","label":"unwatermarked","prompt":"Explain in plain English why held-out evaluation matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-b3-general_explanatory-unwatermarked","seed":820000,"text":"\n\n2.3.7 Write one coherent paragraph without a list.\n\n2.3.8 Use descriptive phrases in your sentence that show how your sentence has been evaluated. Use a word of at least five descriptive phrases. Don't use sentences that are about a specific subject.\n\n2.3.","text_sha256":"c79dad59f55d3a6849f176aba4aa79be1aa34055cbf6011d4846130954c004d6"},{"domain":"general_explanatory","label":"watermarked","prompt":"Explain in plain English why held-out evaluation matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-b3-general_explanatory-watermarked","seed":820000,"text":" Use a list of words in your article. Remember that the content of the article may have changed from the original. Do not attempt to write the whole story without giving the reader the opportunity to make corrections. You can read the original paragraph, but this is not required.\n\nExamples\n\nCriminal Law: Use","text_sha256":"19cec4766922a4b7f80873452869c7fb81cc5c0b7ba5dc803e1c43ceb1380a42"},{"domain":"technical_explanation","label":"unwatermarked","prompt":"Give a technical explanation of held-out evaluation in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-b3-technical_explanation-unwatermarked","seed":820032,"text":" The first test is to determine whether the results are in a reliable state. The second test is to determine whether the result is in a reliable state. The third test is to determine whether the result is in a non-significant state. To ensure stability, ensure the tests are run as well as possible in a controlled environment","text_sha256":"457a75d7b28faab0c86e92fa7fe4439b4cd43ce03864d5b1277fa45c8eac69bd"},{"domain":"technical_explanation","label":"watermarked","prompt":"Give a technical explanation of held-out evaluation in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-b3-technical_explanation-watermarked","seed":820032,"text":" The first test and validation check must be conducted in a closed environment. A closed environment is a small, non-destructive environment, which allows any user to interact with a test or validation. A closed environment has a central location that allows an attacker to perform any action, whether it is to perform a user's own","text_sha256":"715cb27fa20d1921898e75b2d2310b755fe6aeb232ba2e448233f765824eb82e"},{"domain":"conversational_prose","label":"unwatermarked","prompt":"Answer a colleague who asks why held-out evaluation matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-b3-conversational_prose-unwatermarked","seed":820064,"text":" Do not be afraid to use a word from other sources, or even a few words from one source.\n\nTo summarize, these three points apply to most companies. However, if you are a software developer, you will want to start with basic and simple techniques to get started with testing and testing.\n\nOne","text_sha256":"63987d6fc1301be27764e4df73e579d3a3fe8b6b79f1628829a3a86afcde96bd"},{"domain":"conversational_prose","label":"watermarked","prompt":"Answer a colleague who asks why held-out evaluation matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-b3-conversational_prose-watermarked","seed":820064,"text":" Use a simple but informative presentation that is concise and clearly, not an imprecise but effective one.\n\nI've also used the phrase \"troublemaker\" more than once, and I haven't had to write it down in my journal or in an article. But what about the concept of \"t","text_sha256":"1e62f8156c062dabdb62d63d30d614b1bec60679698adc08cd8120b692f5f7ae"},{"domain":"structured_instructional","label":"unwatermarked","prompt":"Write a short three-step instruction for applying held-out evaluation in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-b3-structured_instructional-unwatermarked","seed":820096,"text":"\n\nTest the result using a single-page program.\n\nIn this article, we'll show you how to develop a full-fledged machine learning algorithm that can perform full-blown evaluations in a controlled environment with real-time instructions.\n\nYou can learn more about Machine Learning in this article, including some","text_sha256":"36e63331ae5ee70bbda103cd9b12c4f695e48341c9f7728fb6eb0df163e051ce"},{"domain":"structured_instructional","label":"watermarked","prompt":"Write a short three-step instruction for applying held-out evaluation in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-b3-structured_instructional-watermarked","seed":820096,"text":" Use a series of simple words to describe what's being studied.\n\n1.1.1.1 Break the sentence. Start by repeating the same word twice over. Continue by using a word with multiple words. Make sure to keep your sentences concise.\n\n1.1.1.2 Repeat the same","text_sha256":"e56d752a34dcb1525fca72a1b52dd228e410dbfdf41243921118a42bba54c0cb"}],"seed_base":820000,"stage":"B3","topic":"held-out evaluation"} diff --git a/fuckmark/cycle7/ledger.py b/fuckmark/cycle7/ledger.py index e3410dc5..0890095c 100644 --- a/fuckmark/cycle7/ledger.py +++ b/fuckmark/cycle7/ledger.py @@ -30,6 +30,7 @@ CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000,) CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (860_000,) CYCLE7_VALIDATION_SEED_BASE = 820_000 +CYCLE7_USED_VALIDATION_SEED_BASES = (820_000,) CYCLE7_VALIDATION_TOPIC = "held-out evaluation" CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) CYCLE7_STAGE_B1_TOPIC = "independent replication" @@ -58,6 +59,7 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "stage_b1_exploratory_seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, "stage_b1_topic": CYCLE7_STAGE_B1_TOPIC, "validation_development_seed_base": CYCLE7_VALIDATION_SEED_BASE, + "used_validation_development_seed_bases": list(CYCLE7_USED_VALIDATION_SEED_BASES), "validation_topic": CYCLE7_VALIDATION_TOPIC, "confirmation_reserved_seed_bases": list(CYCLE7_CONFIRMATION_RESERVED_SEED_BASES), "selection_rule": ( diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py index b44d24c0..fb6e0055 100644 --- a/fuckmark/cycle7/stage_b.py +++ b/fuckmark/cycle7/stage_b.py @@ -96,7 +96,7 @@ def classify_stage_b_density( "collapsed_intact_fraction_of_root": collapsed_fraction, "notes": ( "Stage B is development-only. Seeds 830000/840000/850000 were not inspected. " - "Seed 820000 remains unused validation until a catalog freeze." + "Do not promote exploratory or validation seeds into confirmation after seeing scores." ), } return payload diff --git a/tests/test_cycle7_stage_b.py b/tests/test_cycle7_stage_b.py index 157dd6c7..6507cd52 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -41,6 +41,7 @@ def test_stage_b_catalog_and_ledger_identities() -> None: assert payload["stage_b1_exploratory_seed_base"] == 860000 assert payload["stage_b1_topic"] == "independent replication" assert payload["validation_topic"] == "held-out evaluation" + assert payload["used_validation_development_seed_bases"] == [820000] def test_rule_construction_admits_860000_and_blocks_spent_or_reserved_seeds() -> None: From b0d950fc34e83ee34b6716aa028a0589a79d0ff6 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 21:06:29 +0000 Subject: [PATCH 4/7] Skip GPT-2 tokenizer Stage B tests when transformers is missing. Default CI pytest does not install transformers; the Stage B channel tokenization check now importorsksips instead of failing collection. Co-authored-by: Byte271 --- tests/test_cycle7_stage_b_families.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_cycle7_stage_b_families.py b/tests/test_cycle7_stage_b_families.py index 7d75f843..7d3c83b0 100644 --- a/tests/test_cycle7_stage_b_families.py +++ b/tests/test_cycle7_stage_b_families.py @@ -1,3 +1,5 @@ +import pytest + from fuckmark.cycle7.density import durable_density_row from fuckmark.cycle7.durable_rules import ( cycle7_complementizer_that_rules, @@ -242,6 +244,7 @@ def test_stage_b_families_respect_protected_spans_and_quotes() -> None: def test_gpt2_tokenization_changes_for_stage_b_channels() -> None: + pytest.importorskip("transformers") from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained( From 5f0fe819328891f9464b7b426ce8855fa42c91ae Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 21:13:55 +0000 Subject: [PATCH 5/7] Add Cycle 7 Stage C durable catalog v4 and freeze seed 870000. Clause-punctuation newlines and optional quantifier-of-determiner pairs target higher natural site density. Ledger v3 reserves 880000 as unseen validation and leaves 830000/840000/850000 untouched. Co-authored-by: Byte271 --- docs/cycle7/README.md | 19 ++- docs/cycle7/durable-families.md | 43 +++++- docs/cycle7/literature.md | 5 + docs/cycle7/seed-ledger.md | 19 ++- docs/cycle7/stage-c-decision.md | 9 ++ fuckmark/cycle7/density.py | 9 ++ fuckmark/cycle7/durable_rules.py | 67 ++++++++- fuckmark/cycle7/fixtures.py | 18 +++ fuckmark/cycle7/ledger.py | 34 +++-- fuckmark/cycle7/registry.py | 5 +- fuckmark/cycle7/stage_b.py | 4 + fuckmark/cycle7/stage_c.py | 94 +++++++++++++ fuckmark/cycle7_stage_c_hf.py | 150 ++++++++++++++++++++ fuckmark/transforms/format_rules.py | 48 ++++++- fuckmark/transforms/lexical_rules.py | 16 +++ tests/test_cycle7_ledger.py | 10 +- tests/test_cycle7_stage_b.py | 31 +++-- tests/test_cycle7_stage_b_families.py | 2 +- tests/test_cycle7_stage_c_families.py | 193 ++++++++++++++++++++++++++ 19 files changed, 734 insertions(+), 42 deletions(-) create mode 100644 docs/cycle7/stage-c-decision.md create mode 100644 fuckmark/cycle7/stage_c.py create mode 100644 fuckmark/cycle7_stage_c_hf.py create mode 100644 tests/test_cycle7_stage_c_families.py diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index ce8e05a4..544d13ba 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -29,8 +29,10 @@ See `docs/cycle7/seed-ledger.md` and `fuckmark/cycle7/ledger.py`. | Role | Seed base | Status | | --- | --- | --- | | Exploratory development (Stage A) | `810000` | used; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage B1) | `860000` | active; topic frozen as `independent replication` | -| Validation development | `820000` | reserved, unused until a catalog freeze | +| 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` | +| 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 | | Confirmation reserved | `830000`, `840000`, `850000` | must not be inspected | Confirmation seeds were chosen as unused 10k blocks before any Cycle 7 detector look. @@ -47,7 +49,7 @@ The Cycle 6 frozen sanitizer module is unchanged. ## Durable transform families -See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v3`. +See `docs/cycle7/durable-families.md`. Catalog `cycle7-durable-rule-catalog-v4`. Stage A (`v2`) families: @@ -64,6 +66,11 @@ Stage B (`v3`) additions, aimed at natural site density: 8. Parenthetical conjunctive adverb. 9. Coordinating-conjunction comma (`and`/`but`/`or`), with determiner-gated insert. +Stage C (`v4`) additions, aimed at higher natural site density after Stage B showed families 5–9 were sparse: + +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. 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. @@ -80,7 +87,11 @@ Details: `docs/cycle7/stage-a-decision.md`. Stage B1 on seed `860000` looked **`PROMISING_DEVELOPMENT`** on a tiny detector snapshot (durable 2/4 after collapse). Disjoint validation seed `820000` reproduced density/geometry but **not** the detector reduction (durable 4/4 after collapse). Overall Stage B decision: **`INSUFFICIENT_EVIDENCE`**. Details: `docs/cycle7/stage-b-decision.md`. -Seed `820000` is spent as validation. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. +Seed `820000` is spent as validation. Seed `880000` is the next unused validation split and has not been inspected. Seeds `830000` / `840000` / `850000` remain unseen confirmation reserves. + +## Stage C + +Stage C starts from the Stage B negative: local semantically conservative English surface equivalence plus sentence newlines did not replace Cycle 6 spacing after whitespace collapse. Catalog v4 adds clause-punctuation newlines and optional quantifier `of`. This is still development. Details: `docs/cycle7/stage-c-decision.md` once C1 evidence exists. Not claimed: diff --git a/docs/cycle7/durable-families.md b/docs/cycle7/durable-families.md index 807b5d0f..3a4f7c8e 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-v3` (Stage B development). Families 1–3 remain the frozen Stage A `v2` set; v3 adds higher-density collapse-resistant families. Cycle 6 `quote_safe_zrd` ruleset hash is unchanged. +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. All families below are deterministic, detector-blind, key-blind, and non-neural. Cycle 6 `quote_safe_zrd` ruleset hash is unchanged. @@ -186,3 +186,44 @@ Whitespace collapse: comma is not space. Survives. Safety: insert is a style comma before a determiner, not a full independent-clause parser. NP coordinations of the form `X and the Y` can still receive a comma. That is semantically conservative and style-marked. Stage B treats density as the first metric and may reject the insert direction if natural prose over-fires. Not admitted: `nor` / `yet` / `so` (adverb/conjunction ambiguity). Running-text `and` to `&` remains REJECTED (CMOS/AP: ampersand is not prose-equivalent). + +## Family 10 — clause punctuation newline + +Construction: `clause_punctuation_newline`. + +Precondition: `, ` / `; ` / `: ` immediately before an alphabetic word of length at least 2. Exclusions: start of string, digits immediately before the mark (thousands separators, `v2, and`), other punctuation immediately before the mark, already-newline after the mark, and single-letter followers (`Hello, X` / `a, b`). + +Rewrite: swap the single ASCII space after the clause mark for a single LF, or the reverse. + +Inverse: the opposite direction. + +Tokenizer: GPT-2 `Hello, World` versus `Hello,\nWorld` differs. VERIFIED on frozen revision `607a30d783dfa663caf39e06633721c8d4cfcd7e` when transformers is present. + +Whitespace collapse: same as Family 4. `whitespace-collapse-v1` preserves LF. VERIFIED on fixtures against all six Cycle 7 sanitizer variants. + +Sanitizer note: this is still a layout/formatting channel. HYPOTHESIS: a wrap/reflow sanitizer would erase it. It is admitted because Stage B showed sentence-boundary newlines were the only family that raised natural site density, and clause commas are much more common than sentence terminals on ordinary prose. + +Conflict geometry: `, and ` overlaps Family 9 coordinating-comma drop. Cover-greedy v4 remains detector-blind. + +Not admitted: generic extra spaces, NBSP, ZWSP, or converting commas to other Unicode spaces. + +## Family 11 — quantifier `of` before a determiner + +Construction: `quantifier_of_determiner`. + +Closed quantifiers: `all`, `both`, `half`. Closed followers: `the`, `this`, `that`, `these`, `those`, and the possessives `my` / `our` / `your` / `their` / `his` / `her`. `both` does not pair with singular `this` / `that`. + +Precondition: whole-word match plus the same hyphen/slash/alnum adjacency guard as Family 2. All-caps blocked. + +Rewrite: `all of the` ↔ `all the` (and the other closed pairs). + +Inverse: the opposite direction in the same closed list. + +Tokenizer: GPT-2 `All of the replicas failed` versus `All the replicas failed` differs. VERIFIED on the frozen GPT-2 revision when transformers is present. + +Whitespace collapse: the edit is the word `of`, not spaces. Survives. + +False positives blocked: `all of them` / `both of us` / `half of it` (pronouns require `of`), `all of a sudden`, `some/most/each of the` (those quantifiers are not optional-`of` in the same way). + +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. + diff --git a/docs/cycle7/literature.md b/docs/cycle7/literature.md index 641f3b3b..cbe3c9bc 100644 --- a/docs/cycle7/literature.md +++ b/docs/cycle7/literature.md @@ -48,3 +48,8 @@ HYPOTHESIS. Sentence-boundary newline survives `whitespace-collapse-v1` because REJECTED as a Cycle 7 direction: adding more U+0020 spaces to chase 7/192 → 0/192 on spent confirmation rows. REJECTED: running-text `and` to `&` (not prose-equivalent under CMOS/AP). U+2026 ellipsis NFKC-maps to `...`. U+2009 / U+202F NFKC-map to space. + +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. + diff --git a/docs/cycle7/seed-ledger.md b/docs/cycle7/seed-ledger.md index 129b54f9..fe06f2b7 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-v2` (`fuckmark/cycle7/ledger.py`). +Ledger identity: `cycle7-seed-ledger-v3` (`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. +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. ## Spent (forbidden) @@ -18,14 +18,19 @@ Seeds were assigned **before** Cycle 7 detector scoring. Seed `860000` and topic | Role | Seed | May score detectors? | | --- | --- | --- | | Exploratory development (Stage A) | 810000 | yes, development only; do not keep expanding rules against it | -| Exploratory development / rule construction (Stage B1) | 860000 | yes, development only; frozen topic `independent replication` | -| Validation development | 820000 | used as Stage B3 disjoint validation; do not retune on 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` | +| 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 | | Confirmation reserved | 830000, 840000, 850000 | **no** until a later frozen confirmation protocol | -Do not promote 810000, 820000, or 860000 into confirmation after seeing scores. +Do not promote 810000, 820000, 860000, 870000, or 880000 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. -Stage B1 generation uses 860000 with the same pairing rule and topic `independent replication`. Rule-construction generation must call `assert_rule_construction_seed(860000)`. Seed 810000 remains an exploratory seed for Stage A rescoring only. +Stage B1 generation used 860000 with the same pairing rule and topic `independent replication`. Seed 810000 remains an exploratory seed for Stage A rescoring only. + +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)`. -Validation generation used 820000 with topic `held-out evaluation`. That topic was frozen before validation generation. Do not retune catalog v3 on 820000. diff --git a/docs/cycle7/stage-c-decision.md b/docs/cycle7/stage-c-decision.md new file mode 100644 index 00000000..0e13181f --- /dev/null +++ b/docs/cycle7/stage-c-decision.md @@ -0,0 +1,9 @@ +# Cycle 7 Stage C decision + +This file records Stage C development. It is not Cycle 7 formal confirmation. + +Catalog: `cycle7-durable-rule-catalog-v4`. Scheduler: unchanged cover-greedy v4. Detector threshold remains the frozen Cycle 6 value `0.5570987654320988` when detector attachment is run. + +Ledger: `cycle7-seed-ledger-v3`. Seed `870000` and topic `measurement protocol` were frozen before generation. Seed `880000` and topic `independent check` are reserved unused validation. Seeds `830000` / `840000` / `850000` were not inspected. Seeds `810000`, `860000`, and `820000` were not used as rule-construction data for v4. + +C1 evidence will be written under `evidence/cycle7-stage-c-2026-08-25/` after generation. diff --git a/fuckmark/cycle7/density.py b/fuckmark/cycle7/density.py index d2f90db8..15a6cc90 100644 --- a/fuckmark/cycle7/density.py +++ b/fuckmark/cycle7/density.py @@ -31,6 +31,8 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: ) apostrophe_ids = _prefix_ids(rule_ids, ("lexical-apostrophe-",)) format_ids = _prefix_ids(rule_ids, ("cycle7-format-",)) + format_sentence_ids = _prefix_ids(rule_ids, ("cycle7-format-sentence-",)) + format_clause_ids = _prefix_ids(rule_ids, ("cycle7-format-clause-",)) discourse_ids = _prefix_ids(rule_ids, ("lexical-discourse-",)) prenominal_ids = _prefix_ids(rule_ids, ("lexical-prenominal-",)) complementizer_ids = _prefix_ids( @@ -39,6 +41,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-",)) tokenish = max(1, len(text.split())) return { "sample_id": sample_id, @@ -50,11 +53,14 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: "contraction_candidate_count": len(contraction_ids), "apostrophe_candidate_count": len(apostrophe_ids), "format_candidate_count": len(format_ids), + "format_sentence_candidate_count": len(format_sentence_ids), + "format_clause_candidate_count": len(format_clause_ids), "discourse_comma_candidate_count": len(discourse_ids), "prenominal_candidate_count": len(prenominal_ids), "complementizer_candidate_count": len(complementizer_ids), "parenthetical_candidate_count": len(parenthetical_ids), "coord_comma_candidate_count": len(coord_comma_ids), + "quantifier_of_candidate_count": len(quantifier_ids), "protected_blocked_count": sum( 1 for rejection in enumeration.rejections if rejection.reason.value == "protected_overlap" ), @@ -68,11 +74,14 @@ def durable_density_row(sample_id: str, text: str) -> dict[str, object]: "compound_rule_ids": compound_ids, "apostrophe_rule_ids": apostrophe_ids, "format_rule_ids": format_ids, + "format_sentence_rule_ids": format_sentence_ids, + "format_clause_rule_ids": format_clause_ids, "discourse_rule_ids": discourse_ids, "prenominal_rule_ids": prenominal_ids, "complementizer_rule_ids": complementizer_ids, "parenthetical_rule_ids": parenthetical_ids, "coord_comma_rule_ids": coord_comma_ids, + "quantifier_of_rule_ids": quantifier_ids, } diff --git a/fuckmark/cycle7/durable_rules.py b/fuckmark/cycle7/durable_rules.py index 18ce1dd9..992b3a17 100644 --- a/fuckmark/cycle7/durable_rules.py +++ b/fuckmark/cycle7/durable_rules.py @@ -17,7 +17,8 @@ from ..transforms.syntax_rules import SyntaxConstruction, SyntaxTemplateRule, development_syntax_rules -CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v3" +CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v3" +CYCLE7_DURABLE_RULE_CATALOG_VERSION = "cycle7-durable-rule-catalog-v4" @dataclass(frozen=True, slots=True) @@ -433,6 +434,18 @@ def cycle7_typographic_apostrophe_rules() -> tuple[LexicalTemplateRule, ...]: "or", ) +CYCLE7_CLAUSE_PUNCTUATION_MARKS = ( + (",", "comma"), + (";", "semicolon"), + (":", "colon"), +) + +CYCLE7_QUANTIFIER_DETERMINERS = ( + ("all", ("the", "this", "that", "these", "those", "my", "our", "your", "their", "his", "her")), + ("both", ("the", "these", "those", "my", "our", "your", "their", "his", "her")), + ("half", ("the", "this", "that", "these", "those", "my", "our", "your", "their", "his", "her")), +) + def cycle7_prenominal_modifier_rules() -> tuple[LexicalTemplateRule, ...]: rules: list[LexicalTemplateRule] = [] @@ -506,6 +519,56 @@ def cycle7_format_boundary_rules() -> tuple[FormatBoundaryRule, ...]: return tuple(rules) +def cycle7_clause_punctuation_rules() -> tuple[FormatBoundaryRule, ...]: + rules: list[FormatBoundaryRule] = [] + for mark, name in CYCLE7_CLAUSE_PUNCTUATION_MARKS: + rules.append( + FormatBoundaryRule.create( + rule_id=f"cycle7-format-clause-{name}-newline", + version="v1", + source=f"{mark} ", + replacement=f"{mark}\n", + ) + ) + rules.append( + FormatBoundaryRule.create( + rule_id=f"cycle7-format-clause-{name}-space", + version="v1", + source=f"{mark}\n", + replacement=f"{mark} ", + ) + ) + return tuple(rules) + + +def cycle7_quantifier_of_rules() -> tuple[LexicalTemplateRule, ...]: + rules: list[LexicalTemplateRule] = [] + for quantifier, determiners in CYCLE7_QUANTIFIER_DETERMINERS: + for determiner in determiners: + slug = f"{quantifier}-of-{determiner}" + with_of = f"{quantifier} of {determiner}" + without_of = f"{quantifier} {determiner}" + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-quantifier-drop-{slug}", + version="v1", + source=with_of, + replacement=without_of, + construction=LexicalConstruction.QUANTIFIER_OF_DETERMINER, + ) + ) + rules.append( + LexicalTemplateRule.create( + rule_id=f"lexical-quantifier-insert-{slug}", + version="v1", + source=without_of, + replacement=with_of, + construction=LexicalConstruction.QUANTIFIER_OF_DETERMINER, + ) + ) + return tuple(rules) + + def cycle7_complementizer_that_rules() -> tuple[SyntaxTemplateRule, ...]: return ( SyntaxTemplateRule.create( @@ -615,6 +678,8 @@ def cycle7_durable_rules() -> tuple[object, ...]: *cycle7_typographic_apostrophe_rules(), *cycle7_discourse_comma_rules(), *cycle7_format_boundary_rules(), + *cycle7_clause_punctuation_rules(), + *cycle7_quantifier_of_rules(), *cycle7_complementizer_that_rules(), *cycle7_parenthetical_adverb_rules(), *cycle7_coordinating_conjunction_comma_rules(), diff --git a/fuckmark/cycle7/fixtures.py b/fuckmark/cycle7/fixtures.py index 3ab5cc7a..b184343a 100644 --- a/fuckmark/cycle7/fixtures.py +++ b/fuckmark/cycle7/fixtures.py @@ -52,6 +52,16 @@ "The logs were short but the notes were complete or the run stopped." ) +CLAUSE_PUNCT_RICH = ( + "The first replica failed, and the second replica passed; the notes stayed. " + "Protocol: The threshold stayed fixed, so the decision remained." +) + +QUANTIFIER_RICH = ( + "All of the replicas failed and both of these logs were empty. " + "Half the notes stayed and all my checks passed." +) + QUOTE_INTERIOR = 'He answered, "They are not finished and we do not agree."' AMBIGUOUS_NEGATIVES = ( @@ -95,5 +105,13 @@ def stage_b_fixture_samples() -> tuple[tuple[str, str], ...]: ) +def stage_c_fixture_samples() -> tuple[tuple[str, str], ...]: + return ( + *stage_b_fixture_samples(), + ("clause-punct-rich", CLAUSE_PUNCT_RICH), + ("quantifier-rich", QUANTIFIER_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 0890095c..6f7529db 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-v2" +CYCLE7_LEDGER_VERSION = "cycle7-seed-ledger-v3" CYCLE7_EXPLORATORY_ROLE = "exploratory_development" CYCLE7_VALIDATION_ROLE = "validation_development" CYCLE7_CONFIRMATION_RESERVED_ROLE = "confirmation_reserved" @@ -26,14 +26,20 @@ CYCLE7_EXPLORATORY_SEED_BASE = 810_000 CYCLE7_STAGE_A_EXPLORATORY_SEED_BASE = 810_000 CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE = 860_000 -CYCLE7_EXPLORATORY_SEED_BASES = (810_000, 860_000) -CYCLE7_USED_EXPLORATORY_SEED_BASES = (810_000,) -CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES = (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_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_VALIDATION_TOPIC = "held-out evaluation" +CYCLE7_STAGE_C_VALIDATION_TOPIC = "independent check" CYCLE7_CONFIRMATION_RESERVED_SEED_BASES = (830_000, 840_000, 850_000) CYCLE7_STAGE_B1_TOPIC = "independent replication" +CYCLE7_STAGE_C1_TOPIC = "measurement protocol" _ALL_BLOCKED = frozenset( ( @@ -58,9 +64,15 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "active_exploratory_development_seed_bases": list(CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES), "stage_b1_exploratory_seed_base": CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, "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, "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), + "active_validation_development_seed_bases": list(CYCLE7_ACTIVE_VALIDATION_SEED_BASES), "validation_topic": CYCLE7_VALIDATION_TOPIC, + "stage_c_validation_seed_base": CYCLE7_STAGE_C_VALIDATION_SEED_BASE, + "stage_c_validation_topic": CYCLE7_STAGE_C_VALIDATION_TOPIC, "confirmation_reserved_seed_bases": list(CYCLE7_CONFIRMATION_RESERVED_SEED_BASES), "selection_rule": ( "Confirmation-reserved seeds were chosen as unused 10k blocks " @@ -69,12 +81,18 @@ def cycle7_seed_ledger_payload() -> dict[str, object]: "Seed 860000 and topic 'independent replication' were frozen before " "any Stage B generation or detector look. " "Seed 820000 and topic 'held-out evaluation' were frozen before " - "any validation generation or detector look." + "any validation 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 before " + "any Stage C validation 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." + "Do not keep expanding transform rules against 810000 or 860000. " + "Do not retune on validation seed 820000. " + "Do not inspect 830000, 840000, or 850000." ), } @@ -87,7 +105,7 @@ def role_for_seed_base(seed_base: int) -> str | None: require_int("seed_base", seed_base) if seed_base in CYCLE7_EXPLORATORY_SEED_BASES: return CYCLE7_EXPLORATORY_ROLE - if seed_base == CYCLE7_VALIDATION_SEED_BASE: + if seed_base in CYCLE7_VALIDATION_SEED_BASES: return CYCLE7_VALIDATION_ROLE if seed_base in CYCLE7_CONFIRMATION_RESERVED_SEED_BASES: return CYCLE7_CONFIRMATION_RESERVED_ROLE @@ -127,6 +145,6 @@ def assert_seed_not_spent(seed_base: int) -> None: def ledger_roles() -> Mapping[str, Sequence[int]]: return { CYCLE7_EXPLORATORY_ROLE: CYCLE7_EXPLORATORY_SEED_BASES, - CYCLE7_VALIDATION_ROLE: (CYCLE7_VALIDATION_SEED_BASE,), + CYCLE7_VALIDATION_ROLE: CYCLE7_VALIDATION_SEED_BASES, CYCLE7_CONFIRMATION_RESERVED_ROLE: CYCLE7_CONFIRMATION_RESERVED_SEED_BASES, } diff --git a/fuckmark/cycle7/registry.py b/fuckmark/cycle7/registry.py index f0517513..059ca6e7 100644 --- a/fuckmark/cycle7/registry.py +++ b/fuckmark/cycle7/registry.py @@ -11,8 +11,9 @@ from .durable_rules import cycle7_durable_rules -CYCLE7_DURABLE_REGISTRY_ID = "cycle7-durable-catalog-v3" -CYCLE7_COMBINED_REGISTRY_ID = "cycle7-durable-plus-cycle6-spacing-v2" +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" def cycle7_durable_transform_registry(identifiers: Sequence[str] = ()) -> TransformRegistry: diff --git a/fuckmark/cycle7/stage_b.py b/fuckmark/cycle7/stage_b.py index fb6e0055..97de4e7b 100644 --- a/fuckmark/cycle7/stage_b.py +++ b/fuckmark/cycle7/stage_b.py @@ -19,22 +19,26 @@ def summarize_density_rows(rows: Sequence[Mapping[str, object]]) -> dict[str, ob raise ValueError("density rows must not be empty") counts = tuple(int(row["candidate_count"]) for row in rows) format_counts = tuple(int(row["format_candidate_count"]) for row in rows) + format_clause_counts = tuple(int(row.get("format_clause_candidate_count", 0)) for row in rows) complementizer_counts = tuple(int(row["complementizer_candidate_count"]) for row in rows) discourse_counts = tuple(int(row["discourse_comma_candidate_count"]) for row in rows) prenominal_counts = tuple(int(row["prenominal_candidate_count"]) for row in rows) 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) return { "sample_count": len(rows), "mean_candidate_count": sum(counts) / len(counts), "min_candidate_count": min(counts), "max_candidate_count": max(counts), "mean_format_candidate_count": sum(format_counts) / len(format_counts), + "mean_format_clause_candidate_count": sum(format_clause_counts) / len(format_clause_counts), "mean_complementizer_candidate_count": sum(complementizer_counts) / len(complementizer_counts), "mean_discourse_comma_candidate_count": sum(discourse_counts) / len(discourse_counts), "mean_prenominal_candidate_count": sum(prenominal_counts) / len(prenominal_counts), "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), "zero_candidate_rows": sum(count == 0 for count in counts), } diff --git a/fuckmark/cycle7/stage_c.py b/fuckmark/cycle7/stage_c.py new file mode 100644 index 00000000..75bc8ad3 --- /dev/null +++ b/fuckmark/cycle7/stage_c.py @@ -0,0 +1,94 @@ +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_C_DECISION_VERSION = "cycle7-stage-c-decision-v1" + + +def classify_stage_c_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_clause = float(density_summary.get("mean_format_clause_candidate_count", 0.0)) + mean_quantifier = float(density_summary.get("mean_quantifier_of_candidate_count", 0.0)) + residual_mean = mean_candidates - mean_format + reasons: list[str] = [] + if mean_candidates >= 8: + reasons.append("mean durable candidate count is at least 8 per sample") + elif mean_candidates >= 4: + reasons.append("mean durable candidate count remains in the Stage B four-site regime") + else: + reasons.append("mean durable candidate count remains too low to replace Cycle 6 spacing") + if mean_format >= 0.6 * mean_candidates and mean_candidates > 0: + reasons.append("most durable sites are still punctuation-newline layout edits") + if mean_clause >= 2: + reasons.append("clause punctuation newlines supply additional layout density") + if mean_quantifier >= 1: + reasons.append("quantifier-of-determiner sites fired on this corpus") + if residual_mean < 2 and mean_format >= 2: + reasons.append("non-format 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_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_C_DECISION_VERSION, + "decision": decision, + "reasons": tuple(reasons), + "mean_candidate_count": mean_candidates, + "mean_format_candidate_count": mean_format, + "mean_format_clause_candidate_count": mean_clause, + "mean_quantifier_of_candidate_count": mean_quantifier, + "mean_nonformat_candidate_count": residual_mean, + "collapsed_intact_fraction_of_root": collapsed_fraction, + "notes": ( + "Stage C 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, or 820000." + ), + } + return payload + + +def density_artifact_stage_c( + 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-c-density-v1", + "seed_base": seed_base, + "durable_catalog_version": catalog_version, + "detector_access_used_for_selection": False, + "rows": rows, + "summary": summary, + "decision": classify_stage_c_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_c_hf.py b/fuckmark/cycle7_stage_c_hf.py new file mode 100644 index 00000000..4fffad44 --- /dev/null +++ b/fuckmark/cycle7_stage_c_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_C1_EXPLORATORY_SEED_BASE, + CYCLE7_STAGE_C1_TOPIC, + CYCLE7_STAGE_C_VALIDATION_SEED_BASE, + assert_rule_construction_seed, +) +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 +from .durable_io import write_canonical_json_fsynced +from .hashing import sha256_json + + +CYCLE7_STAGE_C_DETECTOR_VERSION = "cycle7-stage-c-detector-compare-v1" + + +def run_stage_c1( + *, + device: str = "cpu", + skip_detector: bool = True, + samples_from: Path | None = None, +) -> dict[str, object]: + seed_base = CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE + topic = CYCLE7_STAGE_C1_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 C sample file seed_base does not match the requested ledger seed") + else: + samples = _generate_stage_b_samples(backend, seed_base, topic, "cycle7-stage-c1") + density_samples = tuple( + {"sample_id": sample["sample_id"], "text": sample["text"]} for sample in samples + ) + density = density_artifact_stage_c( + 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_c_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_C_DETECTOR_VERSION, + "seed_base": seed_base, + "stage": "C1", + "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": "C1", + } + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(prog="fuckmark-cycle7-stage-c") + parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") + parser.add_argument( + "--output-dir", + type=Path, + default=Path("evidence/cycle7-stage-c-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 C validation seed {CYCLE7_STAGE_C_VALIDATION_SEED_BASE} is reserved until a catalog freeze" + ) + skip_detector = not args.with_detector + bundle = run_stage_c1( + 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-c-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/format_rules.py b/fuckmark/transforms/format_rules.py index e63386a3..f7d0dece 100644 --- a/fuckmark/transforms/format_rules.py +++ b/fuckmark/transforms/format_rules.py @@ -72,6 +72,7 @@ class FormatConstruction(str, Enum): SENTENCE_BOUNDARY_NEWLINE = "sentence_boundary_newline" + CLAUSE_PUNCTUATION_NEWLINE = "clause_punctuation_newline" def _word_before_punct(text: str, punct_index: int) -> str: @@ -105,6 +106,33 @@ def sentence_boundary_span_admissible(text: str, start: int, end: int) -> bool: return True +def _follower_alpha_word(text: str, index: int) -> str: + cursor = index + while cursor < len(text) and text[cursor].isalpha(): + cursor += 1 + return text[index:cursor] + + +def clause_punctuation_span_admissible(text: str, start: int, end: int) -> bool: + if start < 0 or end <= start or end > len(text): + return False + if end < len(text) and text[end] == "\n": + return False + if end >= len(text) or not text[end].isalpha(): + return False + if start == 0: + return False + previous = text[start - 1] + if previous.isdigit() or previous in ",.;:?!": + return False + if not (previous.isalpha() or previous in "\"')]" ): + return False + follower = _follower_alpha_word(text, end) + if len(follower) < 2: + return False + return True + + @dataclass(frozen=True, slots=True) class FormatBoundaryRule(LiteralTransformRule): def __post_init__(self) -> None: @@ -119,8 +147,8 @@ def __post_init__(self) -> None: if not isinstance(self.replacement, str) or not self.replacement or "\r" in self.replacement: raise ValueError("replacement must be a non-empty string without carriage returns") mark = self.source[:1] - if mark not in ".?!": - raise ValueError("format boundary source must start with sentence punctuation") + if mark not in ".?!,;:": + raise ValueError("format boundary source must start with sentence or clause punctuation") forward = self.source == f"{mark} " and self.replacement == f"{mark}\n" inverse = self.source == f"{mark}\n" and self.replacement == f"{mark} " if not forward and not inverse: @@ -145,7 +173,11 @@ def _payload(self) -> dict[str, object]: "tier": self.tier.value, "source": self.source, "replacement": self.replacement, - "construction": FormatConstruction.SENTENCE_BOUNDARY_NEWLINE.value, + "construction": ( + FormatConstruction.SENTENCE_BOUNDARY_NEWLINE.value + if self.source[:1] in ".?!" + else FormatConstruction.CLAUSE_PUNCTUATION_NEWLINE.value + ), "whole_word": self.whole_word, "preserve_simple_case": self.preserve_simple_case, "block_all_caps": self.block_all_caps, @@ -161,7 +193,11 @@ def create(cls, rule_id: str, version: str, source: str, replacement: str) -> Fo "tier": TransformTier.SURFACE.value, "source": source, "replacement": replacement, - "construction": FormatConstruction.SENTENCE_BOUNDARY_NEWLINE.value, + "construction": ( + FormatConstruction.SENTENCE_BOUNDARY_NEWLINE.value + if source[:1] in ".?!" + else FormatConstruction.CLAUSE_PUNCTUATION_NEWLINE.value + ), "whole_word": False, "preserve_simple_case": False, "block_all_caps": False, @@ -198,4 +234,6 @@ def precondition(self, text: str, start: int, end: int) -> bool: raise ValueError("format precondition span is outside text") if text[start:end] != self.source: raise ValueError("format precondition span does not match rule source") - return sentence_boundary_span_admissible(text, start, end) + if self.source[:1] in ".?!": + return sentence_boundary_span_admissible(text, start, end) + return clause_punctuation_span_admissible(text, start, end) diff --git a/fuckmark/transforms/lexical_rules.py b/fuckmark/transforms/lexical_rules.py index 03079bc1..2257b341 100644 --- a/fuckmark/transforms/lexical_rules.py +++ b/fuckmark/transforms/lexical_rules.py @@ -18,6 +18,7 @@ class LexicalConstruction(str, Enum): INWORD_TYPOGRAPHIC_APOSTROPHE = "inword_typographic_apostrophe" SENTENCE_INITIAL_DISCOURSE_COMMA = "sentence_initial_discourse_comma" ATTESTED_PRENOMINAL_HYPHEN_MODIFIER = "attested_prenominal_hyphen_modifier" + QUANTIFIER_OF_DETERMINER = "quantifier_of_determiner" @dataclass(frozen=True, slots=True) @@ -162,6 +163,9 @@ def precondition(self, text: str, start: int, end: int) -> bool: elif self.construction is LexicalConstruction.INWORD_TYPOGRAPHIC_APOSTROPHE: if not inword_typographic_apostrophe_span_admissible(text, start, end): return False + elif self.construction is LexicalConstruction.QUANTIFIER_OF_DETERMINER: + if not quantifier_of_determiner_span_admissible(text, start, end): + return False else: return False context = text[max(0, start - 96) : min(len(text), end + 96)].casefold() @@ -243,6 +247,18 @@ def inword_typographic_apostrophe_span_admissible(text: str, start: int, end: in return True +def quantifier_of_determiner_span_admissible(text: str, start: int, end: int) -> bool: + if start > 0: + previous = text[start - 1] + if previous.isalnum() or previous in "_-/\\": + return False + if end < len(text): + nxt = text[end] + if nxt.isalnum() or nxt in "_-/\\": + return False + return True + + def development_lexical_rules() -> tuple[LexicalTemplateRule, ...]: return ( LexicalTemplateRule.create( diff --git a/tests/test_cycle7_ledger.py b/tests/test_cycle7_ledger.py index 6eed72de..0d7ed67b 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-v2" + assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v3" assert CYCLE7_EXPLORATORY_SEED_BASE == 810000 - assert CYCLE7_EXPLORATORY_SEED_BASES == (810000, 860000) - assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000,) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (860000,) + 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_STAGE_B1_EXPLORATORY_SEED_BASE == 860000 assert CYCLE7_VALIDATION_SEED_BASE == 820000 assert CYCLE7_CONFIRMATION_RESERVED_SEED_BASES == (830000, 840000, 850000) @@ -40,6 +40,8 @@ def test_spent_and_reserved_seeds_are_disjoint_and_documented() -> None: } assert len(blocked) == 10 assert 860000 not in blocked + assert 870000 not in blocked + assert 880000 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 6507cd52..02352c72 100644 --- a/tests/test_cycle7_stage_b.py +++ b/tests/test_cycle7_stage_b.py @@ -1,5 +1,8 @@ from fuckmark.cycle7.density import durable_density_table -from fuckmark.cycle7.durable_rules import CYCLE7_DURABLE_RULE_CATALOG_VERSION +from fuckmark.cycle7.durable_rules import ( + CYCLE7_DURABLE_RULE_CATALOG_VERSION, + CYCLE7_STAGE_B_DURABLE_RULE_CATALOG_VERSION, +) from fuckmark.cycle7.fixtures import stage_b_fixture_samples from fuckmark.cycle7.ledger import ( CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES, @@ -9,6 +12,7 @@ CYCLE7_RULE_CONSTRUCTION_ROLE, CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE, CYCLE7_STAGE_B1_TOPIC, + CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, CYCLE7_USED_EXPLORATORY_SEED_BASES, CYCLE7_VALIDATION_SEED_BASE, CYCLE7_VALIDATION_TOPIC, @@ -28,28 +32,35 @@ def test_stage_b_catalog_and_ledger_identities() -> None: - assert CYCLE7_DURABLE_RULE_CATALOG_VERSION == "cycle7-durable-rule-catalog-v3" - assert CYCLE7_DURABLE_REGISTRY_ID == "cycle7-durable-catalog-v3" - assert CYCLE7_COMBINED_REGISTRY_ID == "cycle7-durable-plus-cycle6-spacing-v2" - assert CYCLE7_LEDGER_VERSION == "cycle7-seed-ledger-v2" + 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_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,) - assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (860000,) + assert CYCLE7_USED_EXPLORATORY_SEED_BASES == (810000, 860000) + assert CYCLE7_ACTIVE_EXPLORATORY_SEED_BASES == (870000,) 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["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_860000_and_blocks_spent_or_reserved_seeds() -> None: - assert_rule_construction_seed(CYCLE7_STAGE_B1_EXPLORATORY_SEED_BASE) +def test_rule_construction_admits_870000_and_blocks_spent_or_reserved_seeds() -> None: + assert_rule_construction_seed(CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE) + 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) with pytest.raises(ValueError, match="rule-construction"): 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_development_seed(CYCLE7_EXPLORATORY_SEED_BASE, role=CYCLE7_RULE_CONSTRUCTION_ROLE) with pytest.raises(ValueError, match="confirmation-reserved"): @@ -60,6 +71,8 @@ def test_rule_construction_admits_860000_and_blocks_spent_or_reserved_seeds() -> assert_rule_construction_seed(850000) with pytest.raises(ValueError, match="exploratory"): assert_development_seed(CYCLE7_VALIDATION_SEED_BASE, role=CYCLE7_EXPLORATORY_ROLE) + with pytest.raises(ValueError, match="exploratory"): + assert_development_seed(880000, role=CYCLE7_EXPLORATORY_ROLE) with pytest.raises(ValueError, match="spent"): assert_rule_construction_seed(760000) diff --git a/tests/test_cycle7_stage_b_families.py b/tests/test_cycle7_stage_b_families.py index 7d3c83b0..493bc700 100644 --- a/tests/test_cycle7_stage_b_families.py +++ b/tests/test_cycle7_stage_b_families.py @@ -71,7 +71,7 @@ def test_format_boundary_blocks_abbreviations_initials_digits_and_ellipsis() -> for text in blocked: enumeration = registry.enumerate(text) assert not any( - candidate.rule_id.startswith("cycle7-format-") for candidate in enumeration.candidates + candidate.rule_id.startswith("cycle7-format-sentence-") for candidate in enumeration.candidates ), text diff --git a/tests/test_cycle7_stage_c_families.py b/tests/test_cycle7_stage_c_families.py new file mode 100644 index 00000000..376c541d --- /dev/null +++ b/tests/test_cycle7_stage_c_families.py @@ -0,0 +1,193 @@ +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_clause_punctuation_rules, + cycle7_quantifier_of_rules, +) +from fuckmark.cycle7.fixtures import CLAUSE_PUNCT_RICH, QUANTIFIER_RICH, stage_c_fixture_samples +from fuckmark.cycle7.ledger import ( + CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, + 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 +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 +from fuckmark.transforms.format_rules import FormatConstruction +from fuckmark.transforms.hard_invariants import validate_hard_invariants +from fuckmark.transforms.lexical_rules import LexicalConstruction +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_c_ledger_identities_are_frozen_before_inspection() -> None: + assert CYCLE7_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: + rules = cycle7_clause_punctuation_rules() + assert len(rules) == 6 + assert all( + rule._payload()["construction"] == FormatConstruction.CLAUSE_PUNCTUATION_NEWLINE.value for rule in rules + ) + text = "The first replica failed, and the second replica passed." + output = _apply_rule(text, "cycle7-format-clause-comma-newline") + assert output == "The first replica failed,\nand the second replica passed." + 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-format-clause-comma-space") + assert restored == text + assert validate_hard_invariants(text, output).status is InvariantStatus.PASS + + +def test_clause_semicolon_and_colon_boundaries_fire() -> None: + semi = _apply_rule("The notes stayed; the logs were empty.", "cycle7-format-clause-semicolon-newline") + assert semi == "The notes stayed;\nthe logs were empty." + colon = _apply_rule("Protocol: The threshold stayed fixed.", "cycle7-format-clause-colon-newline") + assert colon == "Protocol:\nThe threshold stayed fixed." + + +def test_clause_punctuation_false_positives_are_blocked() -> None: + registry = cycle7_durable_transform_registry() + blocked = ( + "The total is 1, 000 units.", + "See v2, and stop.", + "Hello, X stays.", + "Visit https://example.com/path,then continue.", + "Time 3: 00 remains.", + "List a, b, c remains.", + ) + for text in blocked: + enumeration = registry.enumerate(text) + assert not any( + candidate.rule_id.startswith("cycle7-format-clause-") for candidate in enumeration.candidates + ), text + + +def test_quantifier_of_drop_and_insert_are_reversible() -> None: + rules = cycle7_quantifier_of_rules() + assert all(rule.construction is LexicalConstruction.QUANTIFIER_OF_DETERMINER for rule in rules) + dropped = _apply_rule("All of the replicas failed.", "lexical-quantifier-drop-all-of-the") + assert dropped == "All the replicas failed." + inserted = _apply_rule("All the replicas failed.", "lexical-quantifier-insert-all-of-the") + assert inserted == "All of the replicas failed." + both = _apply_rule("Both of these logs were empty.", "lexical-quantifier-drop-both-of-these") + assert both == "Both these logs were empty." + half = _apply_rule("Half the notes stayed.", "lexical-quantifier-insert-half-of-the") + assert half == "Half of the notes stayed." + assert validate_hard_invariants("All of the replicas failed.", dropped).status is InvariantStatus.PASS + collapsed = collapse_horizontal_ascii_whitespace(dropped) + assert collapsed == dropped + + +def test_quantifier_of_false_positives_are_blocked() -> None: + registry = cycle7_durable_transform_registry() + blocked = ( + "All of them failed.", + "Both of us waited.", + "Half of it remained.", + "All of a sudden the run stopped.", + "Some of the replicas failed.", + "Most of the logs were empty.", + "Each of the notes stayed.", + "ALL OF THE REPLICAS FAILED.", + ) + for text in blocked: + enumeration = registry.enumerate(text) + assert not any( + candidate.rule_id.startswith("lexical-quantifier-") for candidate in enumeration.candidates + ), text + + +def test_stage_c_fixtures_have_clause_and_quantifier_density() -> None: + clause = durable_density_row("clause-punct-rich", CLAUSE_PUNCT_RICH) + quantifier = durable_density_row("quantifier-rich", QUANTIFIER_RICH) + assert int(clause["format_clause_candidate_count"]) >= 2 + assert int(quantifier["quantifier_of_candidate_count"]) >= 2 + samples = tuple( + {"sample_id": sample_id, "text": text} for sample_id, text in stage_c_fixture_samples() + ) + rows = durable_density_table(samples) + summary = summarize_density_rows(rows) + assert summary["mean_candidate_count"] >= 4 + decision = classify_stage_c_density(density_summary=summary) + assert decision["decision"] in {PROMISING_DEVELOPMENT, INSUFFICIENT_EVIDENCE} + artifact = density_artifact_stage_c( + samples, + seed_base=CYCLE7_STAGE_C1_EXPLORATORY_SEED_BASE, + catalog_version=CYCLE7_DURABLE_RULE_CATALOG_VERSION, + ) + assert artifact["detector_access_used_for_selection"] is False + assert artifact["seed_base"] == 870000 + + +def test_stage_c_classifier_requires_higher_density_than_stage_b() -> None: + summary = { + "mean_candidate_count": 4.25, + "mean_format_candidate_count": 2.5, + "mean_format_clause_candidate_count": 1.0, + "mean_quantifier_of_candidate_count": 0.25, + "mean_coord_comma_candidate_count": 0.75, + } + decision = classify_stage_c_density(density_summary=summary) + assert decision["decision"] == INSUFFICIENT_EVIDENCE + high = { + "mean_candidate_count": 9.0, + "mean_format_candidate_count": 6.0, + "mean_format_clause_candidate_count": 4.0, + "mean_quantifier_of_candidate_count": 1.5, + "mean_coord_comma_candidate_count": 0.5, + } + promising = classify_stage_c_density( + density_summary=high, + collapsed_intact_mean=20.0, + source_root_mean=50.0, + ) + assert promising["decision"] == PROMISING_DEVELOPMENT + + +def test_gpt2_tokenization_changes_for_stage_c_channels() -> None: + pytest.importorskip("transformers") + from transformers import AutoTokenizer + + tokenizer = AutoTokenizer.from_pretrained( + "openai-community/gpt2", + revision="607a30d783dfa663caf39e06633721c8d4cfcd7e", + ) + pairs = ( + ("Hello, World", "Hello,\nWorld"), + ("All of the replicas failed", "All the replicas failed"), + ("Protocol: The threshold stayed", "Protocol:\nThe threshold stayed"), + ) + for left, right in pairs: + assert tokenizer.encode(left, add_special_tokens=False) != tokenizer.encode( + right, add_special_tokens=False + ) From 05eab86130ab50e8643d4cd5f169ab2e9a6f06da Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 21:21:09 +0000 Subject: [PATCH 6/7] Record Cycle 7 Stage C1 INSUFFICIENT_EVIDENCE on seed 870000. Catalog v4 raised mean durable density only to 4.75 sites/sample. Clause newlines fired; quantifier-of did not. Collapse-surviving intact windows stayed ~71.5%. Seed 880000 remains unseen. Co-authored-by: Byte271 --- docs/cycle7/README.md | 2 +- docs/cycle7/stage-c-decision.md | 93 ++++++++++++++++++- .../cycle7-stage-c-2026-08-25/decision.json | 1 + .../cycle7-stage-c-2026-08-25/density.json | 1 + .../detector-compare.json | 1 + .../cycle7-stage-c-2026-08-25/geometry.json | 1 + .../cycle7-stage-c-2026-08-25/samples.json | 1 + 7 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 evidence/cycle7-stage-c-2026-08-25/decision.json create mode 100644 evidence/cycle7-stage-c-2026-08-25/density.json create mode 100644 evidence/cycle7-stage-c-2026-08-25/detector-compare.json create mode 100644 evidence/cycle7-stage-c-2026-08-25/geometry.json create mode 100644 evidence/cycle7-stage-c-2026-08-25/samples.json diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index 544d13ba..da064af3 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -91,7 +91,7 @@ Seed `820000` is spent as validation. Seed `880000` is the next unused validatio ## Stage C -Stage C starts from the Stage B negative: local semantically conservative English surface equivalence plus sentence newlines did not replace Cycle 6 spacing after whitespace collapse. Catalog v4 adds clause-punctuation newlines and optional quantifier `of`. This is still development. Details: `docs/cycle7/stage-c-decision.md` once C1 evidence exists. +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`. Not claimed: diff --git a/docs/cycle7/stage-c-decision.md b/docs/cycle7/stage-c-decision.md index 0e13181f..dc683ba8 100644 --- a/docs/cycle7/stage-c-decision.md +++ b/docs/cycle7/stage-c-decision.md @@ -1,9 +1,94 @@ # Cycle 7 Stage C decision -This file records Stage C development. It is not Cycle 7 formal confirmation. +**Decision: `INSUFFICIENT_EVIDENCE`** -Catalog: `cycle7-durable-rule-catalog-v4`. Scheduler: unchanged cover-greedy v4. Detector threshold remains the frozen Cycle 6 value `0.5570987654320988` when detector attachment is run. +This is development-only. It is not a Cycle 7 formal confirmation. Seeds `830000` / `840000` / `850000` were not inspected. Seed `880000` remains unused validation and was **not** generated. -Ledger: `cycle7-seed-ledger-v3`. Seed `870000` and topic `measurement protocol` were frozen before generation. Seed `880000` and topic `independent check` are reserved unused validation. Seeds `830000` / `840000` / `850000` were not inspected. Seeds `810000`, `860000`, and `820000` were not used as rule-construction data for v4. +Catalog: `cycle7-durable-rule-catalog-v4`. Scheduler: unchanged cover-greedy v4. Detector threshold: frozen Cycle 6 value `0.5570987654320988`. Model: `openai-community/gpt2` revision `607a30d783dfa663caf39e06633721c8d4cfcd7e`. -C1 evidence will be written under `evidence/cycle7-stage-c-2026-08-25/` after generation. +v4 adds Family 10 (clause punctuation newline) and Family 11 (optional quantifier `of` before a closed determiner/possessive). Families 1–9 are unchanged from catalog v3. + +## Stage C1 corpus + +Exploratory seed `870000` and topic `measurement protocol` were frozen in `cycle7-seed-ledger-v3` before generation. Pair stride 32, one pair per TinyDev domain, 8 texts (4 watermarked + 4 matched unwatermarked). Seeds `810000`, `860000`, and `820000` were not used as rule-construction data for v4. + +Artifact hashes: + +- samples `b336e857c49a42a5668b8ab886a3c7b5e7813a050ce81eed068f168cfecf45f8` +- density `64413b60c5d1a659d1d7ea6eec19d06dba35a756589b97d28cca86e5ca8e01b2` +- geometry `8ff51b7845553ed94552ba6f327996424d13809145edf8a114c15cc0284c826f` +- detector-compare `ef9c40420e663ea3ebc26232f0e4c021907c2f5b2c652fa61341dd58c5bfe177` + +## Density (VERIFIED on seed 870000) + +Mean durable candidates: **4.75** per sample (Stage B was 4.25 on 860000 and 4.0 on 820000). Stage C required a mean of at least 8 to call density promising. + +Family means: + +| Family | Mean candidates | +| --- | --- | +| all format (sentence + clause newline) | 2.875 | +| clause punctuation newline | 1.50 | +| non-format residual | 1.875 | +| coordinating comma | 0.25 | +| quantifier `of` | **0.00** | +| complementizer / discourse / prenominal / parenthetical | 0.00 | + +Min 1 / max 11 / zero-candidate rows 0/8. Family 10 did fire (mean 1.5). Family 11 did not fire on this TinyDev 64-token GPT-2 corpus. + +## Geometry (VERIFIED on seed 870000) + +Durable-only, GPT-2 tokenizer, budget 14: + +- mean root windows: 53.0 +- mean intact after durable edits: 37.875 +- mean intact after `whitespace-collapse-v1`: 37.875 +- collapsed intact / root: **0.715** + +Collapse does not restore durable edits. Cycle 6 spacing on the same texts: + +- raw intact / root: 0.170 +- collapsed intact / root: **0.955** + +Combined after collapse: intact / root **0.837**, worse than durable-only. This replicates the Stage A/B combined-arm geometry warning on a **new** exploratory seed. Cover-greedy v4 was not changed. + +## Detector (VERIFIED on seed 870000, 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 | 4/4 | **0/4** | 0/4 | **4/4** | 0/4 | +| Cycle 7 durable v4 | 4/4 | **3/4** | 0/4 | **3/4** | 0/4 | +| Combined | 4/4 | **0/4** | 0/4 | **4/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. + +The durable 3/4 collapse-surviving result is SOURCE-BOUND to seed `870000`. Stage B already showed that a 2/4 development snapshot on 860000 did not replicate on 820000. This C1 snapshot is not treated as a catalog freeze. + +## Claim boundary + +Safe claim: under the frozen SynthID-Text/GPT-2 protocol, catalog v4 on seed `870000` did not raise natural durable-site density out of the Stage B four-site regime (4.75 vs 4.0–4.25), Family 11 did not fire, collapse-surviving intact root windows remained ~71.5%, and Cycle 6 spacing still returned to 4/4 detections after whitespace collapse. + +Do not claim: universal watermark removal; proprietary-detector transfer; formal confirmation; human-fidelity validation; that clause newlines would survive a wrap/reflow sanitizer; that catalog v4 is a Cycle 6 spacing replacement. + +## Overall Stage C1 conclusion + +**`INSUFFICIENT_EVIDENCE`** as a Cycle 6 whitespace-collapse replacement. + +Replicated on a third exploratory seed: punctuation-newline layout is the only durable family that supplies multiple natural sites on TinyDev 64-token GPT-2 text; those edits survive `whitespace-collapse-v1`; most root windows remain intact; Cycle 6 spacing still returns to 4/4 after collapse; transformed unwatermarked controls stay clean; combined-after-collapse geometry is worse than durable-only. + +New negative: optional `all/both/half of DET` did not occur on this corpus (mean 0.0). Expanding sentence newlines to clause commas added about 1.5 candidates/sample and did not move collapse-surviving geometry. + +HYPOTHESIS strengthened toward: local semantically conservative English surface equivalence, plus layout newlines that survive `whitespace-collapse-v1`, does not provide enough natural sites on this domain to replace the Cycle 6 spacing channel. + +Do not freeze catalog v4 against seed `880000`. Do not inspect `880000`. Do not inspect `830000` / `840000` / `850000`. Do not retune v4 on `870000`. Do not open Cycle 7 formal confirmation. + +## Next + +1. Keep `880000` unseen. If a later mechanism version is justified, freeze that version first, then use `880000` as disjoint validation. +2. Do not accumulate more tiny lexical whitelists against 870000. +3. A later mechanism, if pursued, should target a different context-disruption primitive (longer-range deterministic edits, or a collapse-resistant channel denser than clause punctuation) rather than additional closed-list surface equivalences. +4. A detector-blind combined scheduler that prefers collapse-surviving families remains a HYPOTHESIS. It was not applied after seeing 870000. diff --git a/evidence/cycle7-stage-c-2026-08-25/decision.json b/evidence/cycle7-stage-c-2026-08-25/decision.json new file mode 100644 index 00000000..300ecfc3 --- /dev/null +++ b/evidence/cycle7-stage-c-2026-08-25/decision.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-c-decision-v1","collapsed_intact_fraction_of_root":0.714622641509434,"decision":"INSUFFICIENT_EVIDENCE","mean_candidate_count":4.75,"mean_format_candidate_count":2.875,"mean_format_clause_candidate_count":1.5,"mean_nonformat_candidate_count":1.875,"mean_quantifier_of_candidate_count":0.0,"notes":"Stage C 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, or 820000.","reasons":["mean durable candidate count remains in the Stage B four-site regime","most durable sites are still punctuation-newline layout edits","non-format lexical and syntactic density remains low","collapsed intact root windows dropped, but more than half of the source windows remain"]} diff --git a/evidence/cycle7-stage-c-2026-08-25/density.json b/evidence/cycle7-stage-c-2026-08-25/density.json new file mode 100644 index 00000000..a7ea8003 --- /dev/null +++ b/evidence/cycle7-stage-c-2026-08-25/density.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-c-density-v1","artifact_hash":"64413b60c5d1a659d1d7ea6eec19d06dba35a756589b97d28cca86e5ca8e01b2","decision":{"algorithm_version":"cycle7-stage-c-decision-v1","collapsed_intact_fraction_of_root":null,"decision":"INSUFFICIENT_EVIDENCE","mean_candidate_count":4.75,"mean_format_candidate_count":2.875,"mean_format_clause_candidate_count":1.5,"mean_nonformat_candidate_count":1.875,"mean_quantifier_of_candidate_count":0.0,"notes":"Stage C 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, or 820000.","reasons":["mean durable candidate count remains in the Stage B four-site regime","most durable sites are still punctuation-newline layout edits","non-format lexical and syntactic density remains low"]},"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v4","rows":[{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":8,"candidates_per_64_tokens":10.6667,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":3,"coord_comma_candidate_count":0,"coord_comma_rule_ids":[],"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-sentence-period-newline","cycle7-format-clause-comma-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":8,"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":["contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline"],"sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked"},{"apostrophe_candidate_count":4,"apostrophe_rule_ids":["lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic","lexical-apostrophe-ascii-to-typographic"],"candidate_count":11,"candidates_per_64_tokens":13.283,"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":3,"format_clause_candidate_count":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["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":3,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"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":["expand-do-not","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","expand-do-not","lexical-apostrophe-ascii-to-typographic","expand-i-am","lexical-apostrophe-ascii-to-typographic","cycle7-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-expand-its-a","lexical-apostrophe-ascii-to-typographic"],"sample_id":"cycle7-stage-c1-general_explanatory-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":6,"candidates_per_64_tokens":7.5294,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":1,"contraction_candidate_count":0,"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":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-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-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":4,"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-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":3,"candidates_per_64_tokens":3.9184,"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":1,"format_clause_rule_ids":["cycle7-format-clause-comma-newline"],"format_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"format_sentence_candidate_count":2,"format_sentence_rule_ids":["cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"isolated_candidate_count":3,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"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-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"sample_id":"cycle7-stage-c1-technical_explanation-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":1,"candidates_per_64_tokens":1.4545,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":0,"contraction_candidate_count":1,"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":1,"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":["contract-does-not"],"sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":4,"candidates_per_64_tokens":6.4,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":1,"contraction_candidate_count":0,"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-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":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":9,"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-format-sentence-period-newline","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and"],"sample_id":"cycle7-stage-c1-conversational_prose-watermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":4,"candidates_per_64_tokens":4.5714,"complementizer_candidate_count":0,"complementizer_rule_ids":[],"compound_candidate_count":0,"compound_rule_ids":[],"conflict_pair_count":1,"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":2,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":4,"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-format-clause-comma-newline","lexical-for-example-for-instance","cycle7-format-clause-comma-newline","cycle7-format-clause-comma-newline"],"sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked"},{"apostrophe_candidate_count":0,"apostrophe_rule_ids":[],"candidate_count":1,"candidates_per_64_tokens":1.4222,"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":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":1,"parenthetical_candidate_count":0,"parenthetical_rule_ids":[],"precondition_failed_count":2,"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-format-sentence-period-newline"],"sample_id":"cycle7-stage-c1-structured_instructional-watermarked"}],"seed_base":870000,"summary":{"max_candidate_count":11,"mean_candidate_count":4.75,"mean_complementizer_candidate_count":0.0,"mean_coord_comma_candidate_count":0.25,"mean_discourse_comma_candidate_count":0.0,"mean_format_candidate_count":2.875,"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,"min_candidate_count":1,"sample_count":8,"zero_candidate_rows":0}} diff --git a/evidence/cycle7-stage-c-2026-08-25/detector-compare.json b/evidence/cycle7-stage-c-2026-08-25/detector-compare.json new file mode 100644 index 00000000..bca36184 --- /dev/null +++ b/evidence/cycle7-stage-c-2026-08-25/detector-compare.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-c-detector-compare-v1","artifact_hash":"ef9c40420e663ea3ebc26232f0e4c021907c2f5b2c652fa61341dd58c5bfe177","budget":14,"detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v4","geometry_rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":41,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f63e82d6c7de841b2164718761459f827277a6d1b15537bf4319c82056d46794","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":33,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-before-sentence","contract-you-are","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"528ea6f2b1d31882ce83f8bccbdf272c880c7f190c458ba4b4383b27727a0e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":true,"changed_token_positions":59,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":19,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":19,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":19,"measurement_hash":"febdfe4da99187657a5da46d4e03d1352b051676a35573f2416c14b5bceb840d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":45,"selected_count":8,"selected_rule_ids":["contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline"],"token_delta":5,"tuple_leak_window_count":19}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked"},{"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":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":"3b1a0e0f977f0e9eeda49bd6de18dd69d60819c9ae56ae1dc399c8d114e7694f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","surface-space-after-any-word","surface-space-after-work","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"c1a088e35240f269d6235684b42a9fc5a7a320333883fbea3b66001073267cde","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","expand-i-am","surface-space-after-first","surface-space-after-any-word","surface-space-after-really","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-expand-its-a","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":11,"candidate_exhausted":false,"changed_token_positions":63,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":37,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":37,"measurement_hash":"989005076080642957818ef4a5a97e2acfa0bf1d9404778eea043271b0864f8d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":6,"selected_rule_ids":["expand-do-not","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic","expand-i-am","cycle7-format-sentence-period-newline","cycle7-expand-its-a"],"token_delta":4,"tuple_leak_window_count":37}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-c1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"ab24a59f8cbba59001a7a048d020a6379d1fee6267740135b27ddabd0d683e99","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-least"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":33,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":35,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"453f41d1f9c4bdfe3490eb8b2d3bd656b436ddd670b71f25f162bdd8b5fe81ec","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":13,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":28,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":30,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":28,"measurement_hash":"09a6e67db9cd49919356e5ec824d5e033b6f049ed258d6b069305d2f08ecee35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":53,"selected_count":5,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":30}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked"},{"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":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":"900ce5bc8fe830dcbb8357880ad7f76397a14cd5d3ec1888f8cfbddbb4250dff","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"85c0cdb6f410a41cb59136af0d7dc70a73165619d9215a88baa994b4813bf3c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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","cycle7-format-sentence-period-newline","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","cycle7-format-sentence-period-newline"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":61,"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":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":45,"measurement_hash":"ad08c75265b1df13510a5d8dd002f8272b23a64c76741c5172600edb883a77f8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":46}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-c1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"61e34cd98c17a615410ffd099499e5ac9b97b80b1e8d29f1faeba8de090a992e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"a852f0f4fb9ae5638db53a0c9920e388fba208078ab5be185bf5623e7c2f8d53","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":2,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["candidate_exhaustion"],"intact_window_count":50,"measurement_hash":"bb4997f143582fe73c5c17d8f9913858e9ac810af32c569e0d174a6679005d9e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":56,"selected_count":1,"selected_rule_ids":["contract-does-not"],"token_delta":0,"tuple_leak_window_count":50}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":36,"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":10,"measurement_hash":"d1fa376e54439c39773222cfcfbdf97602a9afaa7fc905b79ad3c8be205ac13d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":21,"root_window_count":56,"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-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":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"7c7476635db0fa7df52e188d7d43047d651d2ee149428774e83c4960ac431efa","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":22,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-and","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":12,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":false,"changed_token_positions":5,"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":["possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"77696cfc52803b34d11617ccb8426a02e047ffc35be1990982b2fb4219299132","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":56,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":0,"tuple_leak_window_count":47}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-c1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":66,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"db38f7cf92267604b71320dc8b3e144ed65079dba535d002be85f18e9c383929","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":54,"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","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"be17989f7d9e43aa44201c67f145deca31eb38e498bc1de9493415dcbfe39257","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":54,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":42,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"a029d9ee2532075e2e7c3f7ddfbcedea893ea485612e419ff484306ee57cfa12","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","lexical-for-example-for-instance","cycle7-format-clause-comma-newline"],"token_delta":2,"tuple_leak_window_count":42}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"c7b92b26e4464de8a8a74027f17551116ef6d81c2cf048e0dd640271ccb07dab","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"042f2d6ac6c5e65013f0df3004d64c1098563a48c705eb2c6c931637f2b6d92e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":36,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":36,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":36,"measurement_hash":"f9112eb6c9972ef0d7ce5f43224d29605c45eecf91ff218899bcdbc7af16bc58","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":40,"selected_count":1,"selected_rule_ids":["cycle7-format-sentence-period-newline"],"token_delta":1,"tuple_leak_window_count":36}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-c1-structured_instructional-watermarked"}],"model":"openai-community/gpt2","model_revision":"607a30d783dfa663caf39e06633721c8d4cfcd7e","samples":[{"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked","seed":870000,"text":"\n\n3. If you are a programmer, write the code for any feature. Write one coherent paragraph without a list.\n\n4. If you are a developer, write code that uses a standard library. Write one coherent paragraph without a list.\n\n5. If you are a programmer, write code that","text_sha256":"b9c602d6976a06015cd79a51fc2f91a855466b16996f1f62bca1a120900e231b"},{"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-c1-general_explanatory-watermarked","seed":870000,"text":" Don't read the whole thing. Don't have to.\n\nI'm going to be the first to admit that the only time this is really going to work is when it has a big payoff for me. As a result, it's a lot easier to write than it is to write something simple and elegant.","text_sha256":"8a7196d99f02c1ad7d9a93036c25ce04ad76e53979705114280f6593b7144dc8"},{"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked","seed":870032,"text":"\n\nThe main idea, one failure mode, and one validation check. Prepare the data to be analyzed. Define a data structure with at least some parameters that will be compared in real time. Calculate the probability of each parameter being evaluated.\n\nDefine a data structure with at least some parameters that will","text_sha256":"68a4c2f1c07498781f9d6a317551a67e35ae2ec8fc4b8b8e3db82805feb52980"},{"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-c1-technical_explanation-watermarked","seed":870032,"text":" In the above example, you should specify a standard data-rejection and validation check. A validation check should be a mechanism to send a message to a protocol that uses its own validation check.\n\nExample\n\nYou create a file called \"example.txt\" using the standard file format. It is named \"","text_sha256":"ef2d96cca28f2a3a5345f9a7213866cf4df7d9d08c31755d86b105854f53405c"},{"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked","seed":870064,"text":"\n\nThe important word is \"to\" (not to do) and not to \"to have\" (to ask). The key to understanding the verb is to use the verb \"to\" and not to \"to have\". The verb does not have to be \"to\" or \"to have\".\n\nThe","text_sha256":"0f3abab6a8f84a4fbcb33742e143154a65754d9a3ea6e4674392d8269be3601c"},{"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-c1-conversational_prose-watermarked","seed":870064,"text":"\n\nUse a short explanation. Use brief, concise, and understandable explanations.\n\nUse descriptive terms that describe how the system works.\n\nUse a simple but clear description of the concept.\n\nUse an informative reference.\n\nHave a detailed explanation.\n\nUse well-referenced information from","text_sha256":"c48c178e5b6b865ada92f33297ba40c7a7637dc3993a64d4f2c93fe7f195c027"},{"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked","seed":870096,"text":"\n\nWhen the first step is complete, the number of neurons in each neuron is equal to the number of neurons in the last step (Figure 1). For example, if there were 100 neurons in a single neuron, the number of neurons in the first neuron of the first step would be 100, and the number of","text_sha256":"5db5549fe5aa2f9503d6719ea1eb33864362db8c50924b3eb21be2d369d3ea04"},{"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-c1-structured_instructional-watermarked","seed":870096,"text":" See the \"Simple Text\" section in the first post.\n\nYou can learn how to use the term \"transactional\" for some specific tasks in an experiment. See the \"Simple Text\" section in the first post.\n\nYou can learn how to use the term \"procedural\" for some","text_sha256":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"}],"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":55,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":41,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f63e82d6c7de841b2164718761459f827277a6d1b15537bf4319c82056d46794","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":33,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-before-sentence","contract-you-are","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.48473625140291804,"sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5048137626262627,"text_hash":"46b9bc7f9b63735f096509ad707d11c117c1d9b151ecfa242ad337f4e2d65e46"},"nfkc":{"detected":false,"score":0.5048137626262627,"text_hash":"46b9bc7f9b63735f096509ad707d11c117c1d9b151ecfa242ad337f4e2d65e46"},"nfkc_cf_strip":{"detected":false,"score":0.5048137626262627,"text_hash":"46b9bc7f9b63735f096509ad707d11c117c1d9b151ecfa242ad337f4e2d65e46"},"raw":{"detected":false,"score":0.5048137626262627,"text_hash":"46b9bc7f9b63735f096509ad707d11c117c1d9b151ecfa242ad337f4e2d65e46"},"ws_collapse":{"detected":false,"score":0.4983508554937126,"text_hash":"6bfb544068a8b861dc7730a5c7736ae14c8b571fe13a21175cff8e066164b2f1"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4983508554937126,"text_hash":"6bfb544068a8b861dc7730a5c7736ae14c8b571fe13a21175cff8e066164b2f1"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":true,"changed_token_positions":59,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":19,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":19,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":19,"measurement_hash":"febdfe4da99187657a5da46d4e03d1352b051676a35573f2416c14b5bceb840d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":45,"selected_count":8,"selected_rule_ids":["contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline"],"token_delta":5,"tuple_leak_window_count":19},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.48473625140291804,"sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"},"nfkc":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"},"nfkc_cf_strip":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"},"raw":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"},"ws_collapse":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.41231463571889104,"text_hash":"7c53965f78ac4c82c5d04002f5849d873cb00584d61a2b5b4d403fa2c139989f"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"528ea6f2b1d31882ce83f8bccbdf272c880c7f190c458ba4b4383b27727a0e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.48473625140291804,"sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5037507427213309,"text_hash":"173bd9b376acefbf86ffaa851c8d785ef9dbb6873cb5c6436040cb1a81b2f9a6"},"nfkc":{"detected":false,"score":0.5037507427213309,"text_hash":"173bd9b376acefbf86ffaa851c8d785ef9dbb6873cb5c6436040cb1a81b2f9a6"},"nfkc_cf_strip":{"detected":false,"score":0.5037507427213309,"text_hash":"173bd9b376acefbf86ffaa851c8d785ef9dbb6873cb5c6436040cb1a81b2f9a6"},"raw":{"detected":false,"score":0.5037507427213309,"text_hash":"173bd9b376acefbf86ffaa851c8d785ef9dbb6873cb5c6436040cb1a81b2f9a6"},"ws_collapse":{"detected":false,"score":0.49000206143063285,"text_hash":"7a8a3bf45eb49b066e14603a41a0f45ed852417dee1fc92f37cee4388ad1de3d"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.49000206143063285,"text_hash":"7a8a3bf45eb49b066e14603a41a0f45ed852417dee1fc92f37cee4388ad1de3d"}}},{"arm_id":"cycle6_spacing_b14","domain":"general_explanatory","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":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":"3b1a0e0f977f0e9eeda49bd6de18dd69d60819c9ae56ae1dc399c8d114e7694f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","surface-space-after-any-word","surface-space-after-work","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6258417508417509,"sample_id":"cycle7-stage-c1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.516960141960142,"text_hash":"b72f7599500a6ee217e5c3ce7b283d69b6b0e19b283f6f9499664a6180e04b86"},"nfkc":{"detected":false,"score":0.516960141960142,"text_hash":"b72f7599500a6ee217e5c3ce7b283d69b6b0e19b283f6f9499664a6180e04b86"},"nfkc_cf_strip":{"detected":false,"score":0.516960141960142,"text_hash":"b72f7599500a6ee217e5c3ce7b283d69b6b0e19b283f6f9499664a6180e04b86"},"raw":{"detected":false,"score":0.516960141960142,"text_hash":"b72f7599500a6ee217e5c3ce7b283d69b6b0e19b283f6f9499664a6180e04b86"},"ws_collapse":{"detected":true,"score":0.6258417508417509,"text_hash":"8a7196d99f02c1ad7d9a93036c25ce04ad76e53979705114280f6593b7144dc8"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6258417508417509,"text_hash":"8a7196d99f02c1ad7d9a93036c25ce04ad76e53979705114280f6593b7144dc8"}}},{"arm_id":"cycle7_durable","domain":"general_explanatory","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":11,"candidate_exhausted":false,"changed_token_positions":63,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":37,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":37,"measurement_hash":"989005076080642957818ef4a5a97e2acfa0bf1d9404778eea043271b0864f8d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":6,"selected_rule_ids":["expand-do-not","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic","expand-i-am","cycle7-format-sentence-period-newline","cycle7-expand-its-a"],"token_delta":4,"tuple_leak_window_count":37},"label":"watermarked","pristine_detected":true,"pristine_score":0.6258417508417509,"sample_id":"cycle7-stage-c1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"},"nfkc":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"},"nfkc_cf_strip":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"},"raw":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"},"ws_collapse":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6298532196969696,"text_hash":"66c15d6c416df393c167ad71713a2b806a5c5e5b6bd6f0e01d395a7ef2cf0b51"}}},{"arm_id":"cycle7_combined","domain":"general_explanatory","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"c1a088e35240f269d6235684b42a9fc5a7a320333883fbea3b66001073267cde","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","expand-i-am","surface-space-after-first","surface-space-after-any-word","surface-space-after-really","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-expand-its-a","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"label":"watermarked","pristine_detected":true,"pristine_score":0.6258417508417509,"sample_id":"cycle7-stage-c1-general_explanatory-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5054363075196409,"text_hash":"b74b7dcf99df90a700a530fb420cf7055172c1aa659e2f106b595cc96d43ac04"},"nfkc":{"detected":false,"score":0.5054363075196409,"text_hash":"b74b7dcf99df90a700a530fb420cf7055172c1aa659e2f106b595cc96d43ac04"},"nfkc_cf_strip":{"detected":false,"score":0.5054363075196409,"text_hash":"b74b7dcf99df90a700a530fb420cf7055172c1aa659e2f106b595cc96d43ac04"},"raw":{"detected":false,"score":0.5054363075196409,"text_hash":"b74b7dcf99df90a700a530fb420cf7055172c1aa659e2f106b595cc96d43ac04"},"ws_collapse":{"detected":true,"score":0.6291245791245791,"text_hash":"89922b304393d56752e0a954dcab93a387f6466161bd6e15f35ee98fe01ecd19"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6291245791245791,"text_hash":"89922b304393d56752e0a954dcab93a387f6466161bd6e15f35ee98fe01ecd19"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"ab24a59f8cbba59001a7a048d020a6379d1fee6267740135b27ddabd0d683e99","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-least"],"token_delta":14,"tuple_leak_window_count":7},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.448923194206213,"sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5006221636656419,"text_hash":"31982f89a6789f8cec2a8a9feb07888439f5410e58294818f0149cbb0a8108ed"},"nfkc":{"detected":false,"score":0.5006221636656419,"text_hash":"31982f89a6789f8cec2a8a9feb07888439f5410e58294818f0149cbb0a8108ed"},"nfkc_cf_strip":{"detected":false,"score":0.5006221636656419,"text_hash":"31982f89a6789f8cec2a8a9feb07888439f5410e58294818f0149cbb0a8108ed"},"raw":{"detected":false,"score":0.5006221636656419,"text_hash":"31982f89a6789f8cec2a8a9feb07888439f5410e58294818f0149cbb0a8108ed"},"ws_collapse":{"detected":false,"score":0.448923194206213,"text_hash":"68a4c2f1c07498781f9d6a317551a67e35ae2ec8fc4b8b8e3db82805feb52980"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.448923194206213,"text_hash":"68a4c2f1c07498781f9d6a317551a67e35ae2ec8fc4b8b8e3db82805feb52980"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":28,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":30,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":28,"measurement_hash":"09a6e67db9cd49919356e5ec824d5e033b6f049ed258d6b069305d2f08ecee35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":53,"selected_count":5,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":30},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.448923194206213,"sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"},"nfkc":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"},"nfkc_cf_strip":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"},"raw":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"},"ws_collapse":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.457521645021645,"text_hash":"9956401e88d116f693768a89bc223a3c0c090b3cbade0d50da03183f2128dab9"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":33,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":35,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"453f41d1f9c4bdfe3490eb8b2d3bd656b436ddd670b71f25f162bdd8b5fe81ec","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":13,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.448923194206213,"sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.48900543900543897,"text_hash":"5d615a7032f6226de1f6636c00c4548b057ca89ce76c294386d36db9b25d30e5"},"nfkc":{"detected":false,"score":0.48900543900543897,"text_hash":"5d615a7032f6226de1f6636c00c4548b057ca89ce76c294386d36db9b25d30e5"},"nfkc_cf_strip":{"detected":false,"score":0.48900543900543897,"text_hash":"5d615a7032f6226de1f6636c00c4548b057ca89ce76c294386d36db9b25d30e5"},"raw":{"detected":false,"score":0.48900543900543897,"text_hash":"5d615a7032f6226de1f6636c00c4548b057ca89ce76c294386d36db9b25d30e5"},"ws_collapse":{"detected":false,"score":0.4730172091283202,"text_hash":"7b87c467b92841548b6ea09bb3511dee22fbde773234bb3bd662c275b0b3a907"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4730172091283202,"text_hash":"7b87c467b92841548b6ea09bb3511dee22fbde773234bb3bd662c275b0b3a907"}}},{"arm_id":"cycle6_spacing_b14","domain":"technical_explanation","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":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":"900ce5bc8fe830dcbb8357880ad7f76397a14cd5d3ec1888f8cfbddbb4250dff","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6753787878787879,"sample_id":"cycle7-stage-c1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5294157794157794,"text_hash":"e3fcd304ca195a24f555733b7f71eb757ad2846521bce07382d520e2305f2797"},"nfkc":{"detected":false,"score":0.5294157794157794,"text_hash":"e3fcd304ca195a24f555733b7f71eb757ad2846521bce07382d520e2305f2797"},"nfkc_cf_strip":{"detected":false,"score":0.5294157794157794,"text_hash":"e3fcd304ca195a24f555733b7f71eb757ad2846521bce07382d520e2305f2797"},"raw":{"detected":false,"score":0.5294157794157794,"text_hash":"e3fcd304ca195a24f555733b7f71eb757ad2846521bce07382d520e2305f2797"},"ws_collapse":{"detected":true,"score":0.6753787878787879,"text_hash":"ef2d96cca28f2a3a5345f9a7213866cf4df7d9d08c31755d86b105854f53405c"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6753787878787879,"text_hash":"ef2d96cca28f2a3a5345f9a7213866cf4df7d9d08c31755d86b105854f53405c"}}},{"arm_id":"cycle7_durable","domain":"technical_explanation","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":61,"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":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":45,"measurement_hash":"ad08c75265b1df13510a5d8dd002f8272b23a64c76741c5172600edb883a77f8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":46},"label":"watermarked","pristine_detected":true,"pristine_score":0.6753787878787879,"sample_id":"cycle7-stage-c1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"},"nfkc":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"},"nfkc_cf_strip":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"},"raw":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"},"ws_collapse":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6233708048224177,"text_hash":"f5f3ef5ed1bab28d195546a561463398b988c75386ddea2856a06aed543781f1"}}},{"arm_id":"cycle7_combined","domain":"technical_explanation","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"85c0cdb6f410a41cb59136af0d7dc70a73165619d9215a88baa994b4813bf3c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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","cycle7-format-sentence-period-newline","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","cycle7-format-sentence-period-newline"],"token_delta":14,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6753787878787879,"sample_id":"cycle7-stage-c1-technical_explanation-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5158340158340158,"text_hash":"7fbe74a69125579ecffa388c7c4879395102c532c3ffc3706ceadfde81bbe75f"},"nfkc":{"detected":false,"score":0.5158340158340158,"text_hash":"7fbe74a69125579ecffa388c7c4879395102c532c3ffc3706ceadfde81bbe75f"},"nfkc_cf_strip":{"detected":false,"score":0.5158340158340158,"text_hash":"7fbe74a69125579ecffa388c7c4879395102c532c3ffc3706ceadfde81bbe75f"},"raw":{"detected":false,"score":0.5158340158340158,"text_hash":"7fbe74a69125579ecffa388c7c4879395102c532c3ffc3706ceadfde81bbe75f"},"ws_collapse":{"detected":true,"score":0.6390130816360324,"text_hash":"1b295d6828d8d2ace2d87abd67c46b35a8041edc4cfadf91cede6fc1a7cb22f1"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6390130816360324,"text_hash":"1b295d6828d8d2ace2d87abd67c46b35a8041edc4cfadf91cede6fc1a7cb22f1"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"61e34cd98c17a615410ffd099499e5ac9b97b80b1e8d29f1faeba8de090a992e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47316919191919193,"sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"nfkc":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"nfkc_cf_strip":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"raw":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"ws_collapse":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":2,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["candidate_exhaustion"],"intact_window_count":50,"measurement_hash":"bb4997f143582fe73c5c17d8f9913858e9ac810af32c569e0d174a6679005d9e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":56,"selected_count":1,"selected_rule_ids":["contract-does-not"],"token_delta":0,"tuple_leak_window_count":50},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47316919191919193,"sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"nfkc":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"nfkc_cf_strip":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"raw":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"ws_collapse":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"a852f0f4fb9ae5638db53a0c9920e388fba208078ab5be185bf5623e7c2f8d53","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.47316919191919193,"sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"nfkc":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"nfkc_cf_strip":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"raw":{"detected":false,"score":0.5027583527583527,"text_hash":"1ed4b2aba5a13ab890e0a59ecf83c293869bff5946c4a3e973205d16f4829e13"},"ws_collapse":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.4830898268398268,"text_hash":"3f0b90a958a45c8962d1df36ef44e96713e132a6a134fb7119fb881847d142bd"}}},{"arm_id":"cycle6_spacing_b14","domain":"conversational_prose","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":36,"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":10,"measurement_hash":"d1fa376e54439c39773222cfcfbdf97602a9afaa7fc905b79ad3c8be205ac13d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":21,"root_window_count":56,"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-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":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6415494227994227,"sample_id":"cycle7-stage-c1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5171643975991802,"text_hash":"52eb29c022b24c8b675de0969a2d34e47f4b87008c8b9ad9f0327a504b1ddebf"},"nfkc":{"detected":false,"score":0.5171643975991802,"text_hash":"52eb29c022b24c8b675de0969a2d34e47f4b87008c8b9ad9f0327a504b1ddebf"},"nfkc_cf_strip":{"detected":false,"score":0.5171643975991802,"text_hash":"52eb29c022b24c8b675de0969a2d34e47f4b87008c8b9ad9f0327a504b1ddebf"},"raw":{"detected":false,"score":0.5171643975991802,"text_hash":"52eb29c022b24c8b675de0969a2d34e47f4b87008c8b9ad9f0327a504b1ddebf"},"ws_collapse":{"detected":true,"score":0.6415494227994227,"text_hash":"c48c178e5b6b865ada92f33297ba40c7a7637dc3993a64d4f2c93fe7f195c027"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6415494227994227,"text_hash":"c48c178e5b6b865ada92f33297ba40c7a7637dc3993a64d4f2c93fe7f195c027"}}},{"arm_id":"cycle7_durable","domain":"conversational_prose","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":false,"changed_token_positions":5,"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":["possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"77696cfc52803b34d11617ccb8426a02e047ffc35be1990982b2fb4219299132","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":56,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":0,"tuple_leak_window_count":47},"label":"watermarked","pristine_detected":true,"pristine_score":0.6415494227994227,"sample_id":"cycle7-stage-c1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"},"nfkc":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"},"nfkc_cf_strip":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"},"raw":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"},"ws_collapse":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6165223665223666,"text_hash":"263c2e598fd18e7c0c194ea4c3410f33863a13443700ecb0b702109dc7fbb158"}}},{"arm_id":"cycle7_combined","domain":"conversational_prose","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"7c7476635db0fa7df52e188d7d43047d651d2ee149428774e83c4960ac431efa","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":22,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-and","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":12,"tuple_leak_window_count":10},"label":"watermarked","pristine_detected":true,"pristine_score":0.6415494227994227,"sample_id":"cycle7-stage-c1-conversational_prose-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5015453037841097,"text_hash":"bbebc854983c6e0d69306391728ff63badc8dde587bc615ab3faa36b534e075d"},"nfkc":{"detected":false,"score":0.5015453037841097,"text_hash":"bbebc854983c6e0d69306391728ff63badc8dde587bc615ab3faa36b534e075d"},"nfkc_cf_strip":{"detected":false,"score":0.5015453037841097,"text_hash":"bbebc854983c6e0d69306391728ff63badc8dde587bc615ab3faa36b534e075d"},"raw":{"detected":false,"score":0.5015453037841097,"text_hash":"bbebc854983c6e0d69306391728ff63badc8dde587bc615ab3faa36b534e075d"},"ws_collapse":{"detected":true,"score":0.6353535353535353,"text_hash":"cc25ea089fe85e0b3a72ffe1d93366caf8b2f1d30af2ce6b294f050ccbd5a1fc"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.6353535353535353,"text_hash":"cc25ea089fe85e0b3a72ffe1d93366caf8b2f1d30af2ce6b294f050ccbd5a1fc"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":66,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"db38f7cf92267604b71320dc8b3e144ed65079dba535d002be85f18e9c383929","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":54,"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","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5116909839132061,"sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.4663918597742127,"text_hash":"a4c7cd76e597d2bf1af42ba92b9a1f0a87e1ba1a96b6bf2311497dee0ab6a860"},"nfkc":{"detected":false,"score":0.4663918597742127,"text_hash":"a4c7cd76e597d2bf1af42ba92b9a1f0a87e1ba1a96b6bf2311497dee0ab6a860"},"nfkc_cf_strip":{"detected":false,"score":0.4663918597742127,"text_hash":"a4c7cd76e597d2bf1af42ba92b9a1f0a87e1ba1a96b6bf2311497dee0ab6a860"},"raw":{"detected":false,"score":0.4663918597742127,"text_hash":"a4c7cd76e597d2bf1af42ba92b9a1f0a87e1ba1a96b6bf2311497dee0ab6a860"},"ws_collapse":{"detected":false,"score":0.5050972689861578,"text_hash":"2b85b8151927249111734a7a8daa2d9b09cf45a4bd0e90a72f7d6e24ff4c8396"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5050972689861578,"text_hash":"2b85b8151927249111734a7a8daa2d9b09cf45a4bd0e90a72f7d6e24ff4c8396"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":42,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"a029d9ee2532075e2e7c3f7ddfbcedea893ea485612e419ff484306ee57cfa12","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","lexical-for-example-for-instance","cycle7-format-clause-comma-newline"],"token_delta":2,"tuple_leak_window_count":42},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5116909839132061,"sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"},"nfkc":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"},"nfkc_cf_strip":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"},"raw":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"},"ws_collapse":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5097853535353535,"text_hash":"fe68ee39d1b82eefba7683338416144edce72705fa0387d02b5a049089ca7f8a"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"be17989f7d9e43aa44201c67f145deca31eb38e498bc1de9493415dcbfe39257","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":54,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"label":"unwatermarked","pristine_detected":false,"pristine_score":0.5116909839132061,"sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.47094129702825355,"text_hash":"8fa2d66c0b2dc62a9bec6d03840051b3f8bd0b4cf372122ffdd6df9db2d9eea3"},"nfkc":{"detected":false,"score":0.47094129702825355,"text_hash":"8fa2d66c0b2dc62a9bec6d03840051b3f8bd0b4cf372122ffdd6df9db2d9eea3"},"nfkc_cf_strip":{"detected":false,"score":0.47094129702825355,"text_hash":"8fa2d66c0b2dc62a9bec6d03840051b3f8bd0b4cf372122ffdd6df9db2d9eea3"},"raw":{"detected":false,"score":0.47094129702825355,"text_hash":"8fa2d66c0b2dc62a9bec6d03840051b3f8bd0b4cf372122ffdd6df9db2d9eea3"},"ws_collapse":{"detected":false,"score":0.5055378344852028,"text_hash":"d9fad0d915bb40dd1227730293b2c3068685c1fe73cae09f2d53d28c5ad66956"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5055378344852028,"text_hash":"d9fad0d915bb40dd1227730293b2c3068685c1fe73cae09f2d53d28c5ad66956"}}},{"arm_id":"cycle6_spacing_b14","domain":"structured_instructional","geometry":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"c7b92b26e4464de8a8a74027f17551116ef6d81c2cf048e0dd640271ccb07dab","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.5666666666666667,"sample_id":"cycle7-stage-c1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"nfkc":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"nfkc_cf_strip":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"raw":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"ws_collapse":{"detected":true,"score":0.5666666666666667,"text_hash":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5666666666666667,"text_hash":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"}}},{"arm_id":"cycle7_durable","domain":"structured_instructional","geometry":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":36,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":36,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":36,"measurement_hash":"f9112eb6c9972ef0d7ce5f43224d29605c45eecf91ff218899bcdbc7af16bc58","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":40,"selected_count":1,"selected_rule_ids":["cycle7-format-sentence-period-newline"],"token_delta":1,"tuple_leak_window_count":36},"label":"watermarked","pristine_detected":true,"pristine_score":0.5666666666666667,"sample_id":"cycle7-stage-c1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"},"nfkc":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"},"nfkc_cf_strip":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"},"raw":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"},"ws_collapse":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"},"ws_collapse_nfkc_cf_strip":{"detected":false,"score":0.5364959114959115,"text_hash":"58486fea4ecf7bccaa955b6adba078b212bffc88c4aba00ac533b39848cee5a4"}}},{"arm_id":"cycle7_combined","domain":"structured_instructional","geometry":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"042f2d6ac6c5e65013f0df3004d64c1098563a48c705eb2c6c931637f2b6d92e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"label":"watermarked","pristine_detected":true,"pristine_score":0.5666666666666667,"sample_id":"cycle7-stage-c1-structured_instructional-watermarked","sanitizers":{"cf_strip":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"nfkc":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"nfkc_cf_strip":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"raw":{"detected":false,"score":0.5178145087235996,"text_hash":"f9b8ac8b70838cd9971ccb60dda435e07673175e0cf0f9fb9f2616219e651896"},"ws_collapse":{"detected":true,"score":0.5666666666666667,"text_hash":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"},"ws_collapse_nfkc_cf_strip":{"detected":true,"score":0.5666666666666667,"text_hash":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"}}}],"secret_access_used_for_selection":false,"seed_base":870000,"stage":"C1","summaries":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","median_raw_watermarked_score":0.5178145087235996,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5203387069246753,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5294157794157794,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.627359157046657},"cycle7_combined":{"arm_id":"cycle7_combined","median_raw_watermarked_score":0.5158340158340158,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":0,"raw_watermarked_mean_score":0.5101575339653415,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.5178145087235996,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":4,"ws_collapse_watermarked_mean_score":0.6175394656952033},"cycle7_durable":{"arm_id":"cycle7_durable","median_raw_watermarked_score":0.6233708048224177,"pristine_unwatermarked_detected":0,"pristine_watermarked_detected":4,"raw_unwatermarked_detected":0,"raw_watermarked_detected":3,"raw_watermarked_mean_score":0.6015605756344163,"unwatermarked_row_count":4,"watermarked_row_count":4,"worst_raw_watermarked_score":0.6298532196969696,"ws_collapse_unwatermarked_detected":0,"ws_collapse_watermarked_detected":3,"ws_collapse_watermarked_mean_score":0.6015605756344163}},"threshold":0.5570987654320988,"topic":"measurement protocol"} diff --git a/evidence/cycle7-stage-c-2026-08-25/geometry.json b/evidence/cycle7-stage-c-2026-08-25/geometry.json new file mode 100644 index 00000000..96a74990 --- /dev/null +++ b/evidence/cycle7-stage-c-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":"8ff51b7845553ed94552ba6f327996424d13809145edf8a114c15cc0284c826f","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v4","durable_intact_means":{"collapsed_intact_fraction_of_root":0.714622641509434,"mean_collapsed_intact_window_count":37.875,"mean_intact_window_count":37.875,"mean_root_window_count":53.0,"mean_selected_count":3.625},"rows":[{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":55,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":41,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"f63e82d6c7de841b2164718761459f827277a6d1b15537bf4319c82056d46794","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":33,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-before-sentence","contract-you-are","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":71,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":38,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"528ea6f2b1d31882ce83f8bccbdf272c880c7f190c458ba4b4383b27727a0e4e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":45,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-without","surface-space-after-period","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-period","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":8,"candidate_exhausted":true,"changed_token_positions":59,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":19,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":19,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":19,"measurement_hash":"febdfe4da99187657a5da46d4e03d1352b051676a35573f2416c14b5bceb840d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":45,"selected_count":8,"selected_rule_ids":["contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","contract-you-are","cycle7-format-clause-comma-newline"],"token_delta":5,"tuple_leak_window_count":19}},"domain":"general_explanatory","label":"unwatermarked","sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked"},{"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":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":"3b1a0e0f977f0e9eeda49bd6de18dd69d60819c9ae56ae1dc399c8d114e7694f","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":40,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","surface-space-after-any-word","surface-space-after-work","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence","surface-space-after-comma","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":70,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"c1a088e35240f269d6235684b42a9fc5a7a320333883fbea3b66001073267cde","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":46,"root_window_count":60,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-period","surface-space-after-any-word","expand-i-am","surface-space-after-first","surface-space-after-any-word","surface-space-after-really","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","cycle7-expand-its-a","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":12,"tuple_leak_window_count":8},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":11,"candidate_exhausted":false,"changed_token_positions":63,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":37,"collapsed_token_delta":4,"collapsed_tuple_leak_window_count":37,"failure_classes":["tokenizer_resynchronization_or_long_range_recovery","possible_scheduler_headroom"],"intact_window_count":37,"measurement_hash":"989005076080642957818ef4a5a97e2acfa0bf1d9404778eea043271b0864f8d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":60,"selected_count":6,"selected_rule_ids":["expand-do-not","cycle7-format-sentence-period-newline","lexical-apostrophe-ascii-to-typographic","expand-i-am","cycle7-format-sentence-period-newline","cycle7-expand-its-a"],"token_delta":4,"tuple_leak_window_count":37}},"domain":"general_explanatory","label":"watermarked","sample_id":"cycle7-stage-c1-general_explanatory-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":54,"candidate_exhausted":false,"changed_token_positions":75,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"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","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"ab24a59f8cbba59001a7a048d020a6379d1fee6267740135b27ddabd0d683e99","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-comma","surface-space-after-comma","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-period","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-least"],"token_delta":14,"tuple_leak_window_count":7},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":60,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":33,"collapsed_token_delta":3,"collapsed_tuple_leak_window_count":35,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":6,"measurement_hash":"453f41d1f9c4bdfe3490eb8b2d3bd656b436ddd670b71f25f162bdd8b5fe81ec","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":38,"root_window_count":53,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","surface-space-after-any-word","cycle7-format-sentence-period-newline","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"],"token_delta":13,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":6,"candidate_exhausted":true,"changed_token_positions":58,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":28,"collapsed_token_delta":5,"collapsed_tuple_leak_window_count":30,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":28,"measurement_hash":"09a6e67db9cd49919356e5ec824d5e033b6f049ed258d6b069305d2f08ecee35","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":53,"selected_count":5,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-syntax-coord-comma-drop-and","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":5,"tuple_leak_window_count":30}},"domain":"technical_explanation","label":"unwatermarked","sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked"},{"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":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":"900ce5bc8fe830dcbb8357880ad7f76397a14cd5d3ec1888f8cfbddbb4250dff","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":32,"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-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-before-sentence"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":52,"candidate_exhausted":false,"changed_token_positions":74,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"85c0cdb6f410a41cb59136af0d7dc70a73165619d9215a88baa994b4813bf3c9","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":35,"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","cycle7-format-sentence-period-newline","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","cycle7-format-sentence-period-newline"],"token_delta":14,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":3,"candidate_exhausted":true,"changed_token_positions":61,"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":46,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":45,"measurement_hash":"ad08c75265b1df13510a5d8dd002f8272b23a64c76741c5172600edb883a77f8","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":60,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","cycle7-format-sentence-period-newline","cycle7-format-sentence-period-newline"],"token_delta":3,"tuple_leak_window_count":46}},"domain":"technical_explanation","label":"watermarked","sample_id":"cycle7-stage-c1-technical_explanation-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"61e34cd98c17a615410ffd099499e5ac9b97b80b1e8d29f1faeba8de090a992e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":72,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":12,"measurement_hash":"a852f0f4fb9ae5638db53a0c9920e388fba208078ab5be185bf5623e7c2f8d53","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":24,"root_window_count":56,"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","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","contract-does-not","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word"],"token_delta":13,"tuple_leak_window_count":12},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":2,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":50,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":50,"failure_classes":["candidate_exhaustion"],"intact_window_count":50,"measurement_hash":"bb4997f143582fe73c5c17d8f9913858e9ac810af32c569e0d174a6679005d9e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":56,"selected_count":1,"selected_rule_ids":["contract-does-not"],"token_delta":0,"tuple_leak_window_count":50}},"domain":"conversational_prose","label":"unwatermarked","sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":36,"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":10,"measurement_hash":"d1fa376e54439c39773222cfcfbdf97602a9afaa7fc905b79ad3c8be205ac13d","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":21,"root_window_count":56,"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-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":10},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":40,"candidate_exhausted":false,"changed_token_positions":67,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":51,"collapsed_token_delta":-1,"collapsed_tuple_leak_window_count":51,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":10,"measurement_hash":"7c7476635db0fa7df52e188d7d43047d651d2ee149428774e83c4960ac431efa","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":22,"root_window_count":56,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-before-sentence","cycle7-syntax-coord-comma-drop-and","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":12,"tuple_leak_window_count":10},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":false,"changed_token_positions":5,"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":["possible_scheduler_headroom"],"intact_window_count":47,"measurement_hash":"77696cfc52803b34d11617ccb8426a02e047ffc35be1990982b2fb4219299132","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":1,"root_window_count":56,"selected_count":2,"selected_rule_ids":["cycle7-format-sentence-period-newline","cycle7-syntax-coord-comma-drop-and"],"token_delta":0,"tuple_leak_window_count":47}},"domain":"conversational_prose","label":"watermarked","sample_id":"cycle7-stage-c1-conversational_prose-watermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":66,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":49,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":49,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":8,"measurement_hash":"db38f7cf92267604b71320dc8b3e144ed65079dba535d002be85f18e9c383929","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":47,"root_window_count":54,"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","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":69,"candidate_exhausted":false,"changed_token_positions":73,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":44,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":46,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":7,"measurement_hash":"be17989f7d9e43aa44201c67f145deca31eb38e498bc1de9493415dcbfe39257","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":48,"root_window_count":54,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","cycle7-format-clause-comma-newline","surface-space-after-any-word","surface-space-after-any-word","surface-space-after-any-word","lexical-for-example-for-instance","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":13,"tuple_leak_window_count":9},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":4,"candidate_exhausted":true,"changed_token_positions":57,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":41,"collapsed_token_delta":2,"collapsed_tuple_leak_window_count":42,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":41,"measurement_hash":"a029d9ee2532075e2e7c3f7ddfbcedea893ea485612e419ff484306ee57cfa12","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":54,"selected_count":3,"selected_rule_ids":["cycle7-format-clause-comma-newline","lexical-for-example-for-instance","cycle7-format-clause-comma-newline"],"token_delta":2,"tuple_leak_window_count":42}},"domain":"structured_instructional","label":"unwatermarked","sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked"},{"arms":{"cycle6_spacing_b14":{"arm_id":"cycle6_spacing_b14","budget_exhausted":true,"candidate_count":41,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"c7b92b26e4464de8a8a74027f17551116ef6d81c2cf048e0dd640271ccb07dab","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_combined":{"arm_id":"cycle7_combined","budget_exhausted":true,"candidate_count":42,"candidate_exhausted":false,"changed_token_positions":76,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":true,"collapsed_intact_window_count":40,"collapsed_token_delta":0,"collapsed_tuple_leak_window_count":40,"failure_classes":["budget_exhaustion","tokenizer_resynchronization_or_long_range_recovery","whitespace_only_channel"],"intact_window_count":7,"measurement_hash":"042f2d6ac6c5e65013f0df3004d64c1098563a48c705eb2c6c931637f2b6d92e","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":25,"root_window_count":40,"selected_count":14,"selected_rule_ids":["surface-space-after-any-word","surface-space-after-any-word","surface-space-after-first","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"],"token_delta":14,"tuple_leak_window_count":11},"cycle7_durable":{"arm_id":"cycle7_durable","budget_exhausted":false,"candidate_count":1,"candidate_exhausted":true,"changed_token_positions":29,"closure_free":false,"collapsed_closure_free":false,"collapsed_equals_collapsed_source":false,"collapsed_intact_window_count":36,"collapsed_token_delta":1,"collapsed_tuple_leak_window_count":36,"failure_classes":["candidate_exhaustion","tokenizer_resynchronization_or_long_range_recovery"],"intact_window_count":36,"measurement_hash":"f9112eb6c9972ef0d7ce5f43224d29605c45eecf91ff218899bcdbc7af16bc58","protected_blocked_count":0,"quote_blocked_count":0,"reachable_unselected_static_cover":0,"root_window_count":40,"selected_count":1,"selected_rule_ids":["cycle7-format-sentence-period-newline"],"token_delta":1,"tuple_leak_window_count":36}},"domain":"structured_instructional","label":"watermarked","sample_id":"cycle7-stage-c1-structured_instructional-watermarked"}],"seed_base":870000} diff --git a/evidence/cycle7-stage-c-2026-08-25/samples.json b/evidence/cycle7-stage-c-2026-08-25/samples.json new file mode 100644 index 00000000..d4692981 --- /dev/null +++ b/evidence/cycle7-stage-c-2026-08-25/samples.json @@ -0,0 +1 @@ +{"algorithm_version":"cycle7-stage-c-samples-v1","artifact_hash":"b336e857c49a42a5668b8ab886a3c7b5e7813a050ce81eed068f168cfecf45f8","detector_access_used_for_selection":false,"durable_catalog_version":"cycle7-durable-rule-catalog-v4","samples":[{"domain":"general_explanatory","label":"unwatermarked","prompt":"Explain in plain English why measurement protocol matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-c1-general_explanatory-unwatermarked","seed":870000,"text":"\n\n3. If you are a programmer, write the code for any feature. Write one coherent paragraph without a list.\n\n4. If you are a developer, write code that uses a standard library. Write one coherent paragraph without a list.\n\n5. If you are a programmer, write code that","text_sha256":"b9c602d6976a06015cd79a51fc2f91a855466b16996f1f62bca1a120900e231b"},{"domain":"general_explanatory","label":"watermarked","prompt":"Explain in plain English why measurement protocol matters in careful scientific work. Write one coherent paragraph without a list.","sample_id":"cycle7-stage-c1-general_explanatory-watermarked","seed":870000,"text":" Don't read the whole thing. Don't have to.\n\nI'm going to be the first to admit that the only time this is really going to work is when it has a big payoff for me. As a result, it's a lot easier to write than it is to write something simple and elegant.","text_sha256":"8a7196d99f02c1ad7d9a93036c25ce04ad76e53979705114280f6593b7144dc8"},{"domain":"technical_explanation","label":"unwatermarked","prompt":"Give a technical explanation of measurement protocol in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-c1-technical_explanation-unwatermarked","seed":870032,"text":"\n\nThe main idea, one failure mode, and one validation check. Prepare the data to be analyzed. Define a data structure with at least some parameters that will be compared in real time. Calculate the probability of each parameter being evaluated.\n\nDefine a data structure with at least some parameters that will","text_sha256":"68a4c2f1c07498781f9d6a317551a67e35ae2ec8fc4b8b8e3db82805feb52980"},{"domain":"technical_explanation","label":"watermarked","prompt":"Give a technical explanation of measurement protocol in software experiments. Define the main idea, one failure mode, and one validation check.","sample_id":"cycle7-stage-c1-technical_explanation-watermarked","seed":870032,"text":" In the above example, you should specify a standard data-rejection and validation check. A validation check should be a mechanism to send a message to a protocol that uses its own validation check.\n\nExample\n\nYou create a file called \"example.txt\" using the standard file format. It is named \"","text_sha256":"ef2d96cca28f2a3a5345f9a7213866cf4df7d9d08c31755d86b105854f53405c"},{"domain":"conversational_prose","label":"unwatermarked","prompt":"Answer a colleague who asks why measurement protocol matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-c1-conversational_prose-unwatermarked","seed":870064,"text":"\n\nThe important word is \"to\" (not to do) and not to \"to have\" (to ask). The key to understanding the verb is to use the verb \"to\" and not to \"to have\". The verb does not have to be \"to\" or \"to have\".\n\nThe","text_sha256":"0f3abab6a8f84a4fbcb33742e143154a65754d9a3ea6e4674392d8269be3601c"},{"domain":"conversational_prose","label":"watermarked","prompt":"Answer a colleague who asks why measurement protocol matters. Use natural conversational prose while keeping the explanation precise.","sample_id":"cycle7-stage-c1-conversational_prose-watermarked","seed":870064,"text":"\n\nUse a short explanation. Use brief, concise, and understandable explanations.\n\nUse descriptive terms that describe how the system works.\n\nUse a simple but clear description of the concept.\n\nUse an informative reference.\n\nHave a detailed explanation.\n\nUse well-referenced information from","text_sha256":"c48c178e5b6b865ada92f33297ba40c7a7637dc3993a64d4f2c93fe7f195c027"},{"domain":"structured_instructional","label":"unwatermarked","prompt":"Write a short three-step instruction for applying measurement protocol in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-c1-structured_instructional-unwatermarked","seed":870096,"text":"\n\nWhen the first step is complete, the number of neurons in each neuron is equal to the number of neurons in the last step (Figure 1). For example, if there were 100 neurons in a single neuron, the number of neurons in the first neuron of the first step would be 100, and the number of","text_sha256":"5db5549fe5aa2f9503d6719ea1eb33864362db8c50924b3eb21be2d369d3ea04"},{"domain":"structured_instructional","label":"watermarked","prompt":"Write a short three-step instruction for applying measurement protocol in an experiment. Use complete sentences and keep each step concrete.","sample_id":"cycle7-stage-c1-structured_instructional-watermarked","seed":870096,"text":" See the \"Simple Text\" section in the first post.\n\nYou can learn how to use the term \"transactional\" for some specific tasks in an experiment. See the \"Simple Text\" section in the first post.\n\nYou can learn how to use the term \"procedural\" for some","text_sha256":"668b0ce51b08c01c1881445bf49f60b8915724eba7db67e1b357449c1394f6cf"}],"seed_base":870000,"stage":"C1","topic":"measurement protocol"} From 5d8140d702dfb2a5f056ca0dfc293ba6fb190255 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 25 Aug 2026 21:25:08 +0000 Subject: [PATCH 7/7] Record PR #95 squash-merge and retrigger Actions on main. Retargeting #96 to main does not emit pull_request synchronize, so the rebase SHA had only CodeRabbit. This push starts full CI. Co-authored-by: Byte271 --- docs/cycle7/README.md | 5 +++-- docs/cycle7/live-state-audit.md | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/docs/cycle7/README.md b/docs/cycle7/README.md index da064af3..c134c793 100644 --- a/docs/cycle7/README.md +++ b/docs/cycle7/README.md @@ -6,9 +6,10 @@ This directory starts Cycle 7 development. It does not retune Cycle 6 and does n ## Live state (verified 2026-08-25) -See `docs/cycle7/live-state-audit.md`. Independent GitHub inspection matched the Cycle 6 freeze: +See `docs/cycle7/live-state-audit.md`. Independent GitHub inspection: -- `main` HEAD `ddccd74a9e0e710085b385fed98959f2730b9d60` +- `main` HEAD `af341884fff211caeb24649a6ce79305c3491c6c` (PR #95 squash-merge) +- Cycle 6 freeze parent `ddccd74a9e0e710085b385fed98959f2730b9d60` - PR #93 and PR #94 merged - Recovery run `32886342498` success - Aggregate hash `30577aafaffd0c50f0ddb384a4509eb0bb93e4374bf39704869ddbf5053186a4` diff --git a/docs/cycle7/live-state-audit.md b/docs/cycle7/live-state-audit.md index 00e79518..394bf3a2 100644 --- a/docs/cycle7/live-state-audit.md +++ b/docs/cycle7/live-state-audit.md @@ -62,3 +62,17 @@ 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) + +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. + +Verified `main` HEAD: `af341884fff211caeb24649a6ce79305c3491c6c` + +Subject: `Cycle 7 Stage A: collapse-resistant durable transforms (#95)` + +Parent freeze commit remains `ddccd74a9e0e710085b385fed98959f2730b9d60`. 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. + +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. +