Every input of the design traced to its source, and the pilot read at K = 24
AJ: no number without a recorded origin, in code or in reporting. What that changed here:
AJ: no number without a recorded origin, in code or in reporting. What that changed here:
The simulation of the registered rule (partition-sensitivity-openstack-stopping.json, commit
2cd4184): 1,000 null studies and 300 per power step at each run spread, the test window's 1,635
planned changes drawn from the v3 pilot, runs on admissible partitions built as the jobs build them,
Algorithm 1 from K = 8 to 40. One-sided false positives against nominal 0.0125 (97.5%) and 0.025
(95%), mean runs, share at the cap, and the rate at which a second, independent aggregation differs
by more than xi = 0.01:
Twenty-two partition_run jobs on corpus-v3/openstack, the first 22 admissible partitions at
training seeds 1 to 22 and N = 1,850 (jobs 208523 to 208530 pinned at 8ec4e12, 208535 to 208548 at
205ba2f; the two differ only by scripts/partition_pilot.py, which no job runs). Every
outcome-neutral check passed and the apparatus held in all 22, and every run scored the same 501
examples: dedup-first left nothing to drop.
AJ decided the question the partition measurement opened: H1 is read over repeated partitions
(spec docs/superpowers/specs/2026-09-29-repeated-partitions-design.md). Choices, each grounded:
Decided with AJ ("item 3"). Every RQ2 measurement so far reads AOSP and Qt corpora fetched over REST before the robots.txt stop (2026-09-23): the codebase-family attribution, the aggregate attack and all four adapter-split defences. They are kept as internal pilots and nothing built on them is published. RQ2's publishable corpora are the permitted hosts: OpenStack, Wikimedia, and LineageOS, whose Android platform code stands in for AOSP's C, C++ and Java family. AOSP returns through the NoteDb route once its host's terms allow bulk fetching; Qt returns only with permission.
Qt and Chromium have not answered the requests for permission, and H2 runs only if both are admitted. Decided with AJ: the Stage 1 design names an ordered list of candidate organizations and the criteria that admit one (a host whose robots.txt and terms permit automated access, or written permission; the split criteria at the design's training size), so a host that never answers moves the study to the next candidate rather than stopping it. Registered-report guidance asks for inclusion criteria and the conditions under which units are replaced to be fixed in Stage 1.
The eight jobs planned above ran at a41af73 (rebased as 8b96668; the two differ only by the
analysis script, committed before the jobs landed); every outcome-neutral check passed and the
apparatus held in each. partition-variance-openstack-v3.json, H1 point estimate per run:
The registered split is sensitive to small corpus changes (117 of 238 projects moved between v2 and v3), so H1 reads one partition of many that meet the same criteria, and nothing measured so far says how much the reading depends on which. Fixed here, before any job:
Five single-seed placebo jobs at the half size (207303 to 207307, pinned at 8334d79) on
corpus-v3/openstack, copied to TIGRIS with all 109 files' sha256 matched. The five roots are
byte-identical under the same digest command as v2: 0ee3f74ab4a1b6e9. Every outcome-neutral
check passed in every job. The halves equalize at 2,004 and are scored on 98 and 109 development
changes (v2: 116 and 113).
Found while auditing Wikimedia's first eight built months for bot comments (none were found, and the
build's service-account filter has removed nothing on any of the four hosts). What turned up instead is Gerrit's "Suggest edit": the reviewer's rewrite of the commented
lines, fenced as a ```suggestion block in the comment (USER_SUGGESTION_START_PATTERN in
Gerrit's polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts, read at c52ea5b). The
prompt carries every comment, so on those examples the target is text the prompt already holds.
Counted on the built examples (before refine):
Decided on the open question the language-mix ceiling raised: OpenStack's halves split 40%
reStructuredText against 62% Python, so part of a half-split contrast could be a document-type
difference. H1 now carries a supplementary estimand, as H2 carries one restricted to C++: the same
contrast on one file suffix per admitted organization, the one both halves hold most of, meaning
the largest smaller count across the two halves' training rows, ties by name (matched_suffix).
Pooling the halves was rejected in review: a large docs-heavy half could make a suffix the small
half barely has the pooled winner, and that cell would fail for want of changes. For OpenStack
the rule gives .py (692 and 1,362 training rows; .rst has 871 and 313). The suffix is derived in
code from the organization's split-criteria artifact, never passed in, and each half's
test-window share of it is reported. Under ICH E9(R1) a restricted population is a different
estimand, so it is reported beside H1 and decides nothing. The rule was registered after
OpenStack's development-window pilot had been read, and reads only training-window suffix counts.
It costs no training: the adapters' existing scores are read on the subset. cpp_supplement and
file_type_supplement share one restricted-bootstrap helper, which builds each cell's clusters
inside its error handling, as cpp_supplement did.
The first GPU runs on corpus v2. The v2 OpenStack corpus was copied to TIGRIS
(corpus-v2/openstack, every file's sha256 matched) and the placebo run at the half size under
RUN_TAG=v2, five single-seed jobs (206166, 206171 to 206174), each building its halves into its
own root so concurrent builds could not overwrite one another. The five roots are byte-identical,
checked on the cluster with find . -type f ! -name '*.source.json' ! -name placebo.json -print0 |
sort -z | xargs -0 sha256sum | sha256sum in each root: every one gives f49b745cfbde62c0.
--corpus-digest records that value when the runs are merged; it is the caller's assertion and
the merge does not recompute it. merge otherwise refuses runs whose corpus sources differ, and
with the digest compares them with only the root removed, mode, windows and every count still
compared. The halves equalize at 2,158 examples, of which 2,155 trained (three refused by the
trainer), and are scored on 116 and 113 development changes.
scripts/split_criteria.py checks an organization's registered split against OpenStack's, each
half deduplicated and split on its own as the runner reads a placebo half (it reproduces the
runner's 2,158 and 2,182 training examples on corpus v2). Generated from
split-criteria-openstack.json, OpenStack against itself:
The granularity design had two fixed cell sets, with and without Chromium, and both put Qt in H1.
Since 2026-09-26 an organization enters a confirmatory cell only from a host permitting automated
access in writing, so Qt, Chromium and Wikimedia are each admitted or not independently, and two
fixed sets no longer cover the cases. The cells are now built by one rule from the admitted set
(design() in sphragis/experiment/decomposition.py), fixed here before any Wikimedia contrast
exists:
Collected now, whatever Qt and Chromium answer, so the dev-window pilot can run on it before 2026-11-20. If both grant permission, the study has four organizations.