# RN002 aggregation supplement, version 1.0

Resource: ARC-RN-002. Prepared 2026-09-29 by ARC editorial preparation (agent-assisted). Independent review: none. This is a safe methods and fixture package, not a release of the private incident corpus or a replication of its factual history.

## Run

Download `analyze.py`, `expected-fixture-results.json`, and the three files under `fixtures/`, retaining that directory layout. Python 3.10 or newer; standard library only:

```sh
python3 analyze.py fixtures > reproduced-fixture-results.json
```

Run `python3 verify.py` for fixture, empty-input, inclusive threshold, and quartile checks.

Compare parsed JSON with `expected-fixture-results.json`; verify downloaded files with `shasum -a 256 -c SHA256SUMS.txt`. Checksums prove byte agreement, not source authenticity. Every fixture value is invented. No synthetic outcome is evidence about the historical incident.

## Data dictionary

The input is three UTF-8 JSONL files, one object per line. Blank lines are invalid. There is no network access and no automatic discovery of a private archive.

| File | Field | Meaning and type |
|---|---|---|
| pages.jsonl | page_id | Unique opaque page key, string; must agree with revisions |
| pages.jsonl | wiki | Source-site category, string; dse is the focal category used in the article |
| pages.jsonl | page_family | Preassigned category, string; categories are supplied, not inferred by this code |
| pages.jsonl | n_revs | Nonnegative integer number of stored revisions for that page |
| pages.jsonl | n_labels | Nonnegative integer source-provided distinct-label count; the retained archive includes the blank label as a distinct value when present |
| pages.jsonl | is_central | Boolean membership in the article's four-page central set; false if absent |
| revisions.jsonl | page_id, wiki | Page join key and source-site category |
| revisions.jsonl | time | UTC ISO-8601 timestamp; canonical zero-padded form ending Z |
| revisions.jsonl | seq | Integer tie-break for same-time revisions on one page |
| revisions.jsonl | label | Opaque equality token for a display label; empty string or null is blank; synthetic values here are invented |
| events.jsonl | event_type | String category for a separately supplied event record |

These are the only consumed fields. Bodies, URLs, personal data, network fragments, credentials, and mechanisms of unintended access are neither needed nor included. Do not release projections of real private labels: equality tokens and exact times can still expose relationships. This public package contains only synthetic rows.

## Inclusion, exclusion, and calculations

The historical script counted all supplied page, revision, and event rows without deduplication, with no participant or bot filtering. Thus the study describes the supplied archive, not a census of all activity. No deleted or missing records are reconstructed. Event rows can overlap revisions conceptually; their counts must not be added to revision counts. The fixture follows the same rules.

Concentration uses all stored revisions/pages as denominators. The June 16–22 window is inclusive in UTC, based on each revision's first ten timestamp characters. Page-family and central-page revision counts use supplied page n_revs; validate these against revision rows before trusting a new dataset. Families and the selected central set are input annotations; this script cannot independently recover or validate their historical assignment. The source n_labels counts distinct values including a blank value when present, while the lag calculation excludes blanks. A 2026-09-29 owner-side audit found that this distinction changes label counts on 568 pages but changes no dse page's membership in the n_labels>1 group; the reported 1,182-page result therefore remains unchanged. This is a source-field clarification, not proof of authenticated identities.

For each page, sort revisions by (time, seq), then inspect adjacent pairs before removing blank labels. Trim both labels. Include a lag only when both labels are nonblank and unequal. A blank label interrupts adjacency: the script does not bridge across it. Equal-label adjacent revisions are excluded. All sites contribute to the lag distribution; the multi-label page percentage is restricted to dse pages. Lags are later minus earlier timestamp in seconds. Thresholds are inclusive (≤60 and ≤600). Median is Python statistics.median. Quartiles use the sorted value at floor((n−1)×fraction), without interpolation. Each transition is counted once, irrespective of label or page activity volume. These are label transitions, not verified people, response causality, or collaboration quality.

The public adaptation replaces four historical page-name literals with is_central. The historical private script is preserved in the source repository; no private page names are needed to run the public method. It also defines empty-input behavior: percentages with zero denominators return 0, while medians and quantiles with no qualifying lags return null. No historical result relied on an empty denominator.

## Fixture hand-check

There are two pages and six revisions. Five revisions belong to dse, all in the June 16–22 window and on the synthetic central page. Its two distinct nonblank labels plus one blank value give n_labels=3 and make the dse multi-label page percentage 100%. Only the first pair qualifies as an adjacent cross-label transition: its lag is 60 seconds. The next pair repeats a label; the following two touch a blank label. Both threshold counts are therefore 1, and median and both quartiles are 60. One separate synthetic event is counted but never added to the six revisions.

## What can be independently reproduced

Anyone can execute and inspect the aggregation logic, reproduce the synthetic outputs, check edge cases, and understand the published denominators. An authorized holder of a correctly projected source corpus can recompute the numeric aggregates, subject to validation of annotations and completeness. ARC's local comparison against the retained private corpus, if reported, is an owner-side consistency check, not public replication.

Without the private source, a public reader cannot verify the reported 4,579 pages, 14,591 revisions, 8,871 transitions, 126-second median, chronology of content, classification validity, original permissions, authorship, motives, or causal hypotheses. No publicly verifiable source-level claim is implied by publishing code. Consent and confidentiality restrictions remain in force; this package supplies no instructions for accessing or reproducing the unintended-write incident.

## Separate evidence levels

**Temporal observation:** the supplied archive places instrumental source-list activity before later addressed coordination. Archive sequence is not a complete discovery trace; earlier unobserved activity remains possible.

**Causal hypothesis:** useful resources, discoverable activity, and continuity may have supported convergence. Selection effects, assigned tasks, imitation, and unobserved discovery routes remain alternatives. The incident does not identify a causal effect or a universal agent preference.

**Design recommendation:** test stable links, explicit permissions, ordinary HTML/text/JSON, and searchable evidence on ARC's intentionally offered read-only surface. These are normative and testable design choices. The incident motivates them but does not prove that they improve retrieval or invite voluntary return.

A permitted ARC retrieval task should ask a reader to locate a stated aggregate, preserve its label/identity caveat, distinguish sequence from cause, and report the request path and recovery from missing detail. Participant writes, third-party probing, adoption claims, and engagement measures are outside that evaluation. The RN003 evaluation supplement specifies representation tasks and makes its completed versus pending status explicit.

Owner-side method check on 2026-09-29: the public adaptation exactly matched the original script's aggregate output when supplied retained inputs in memory with the four-page membership converted to booleans. All page n_revs values matched their revision-row counts. No private projection was written or published.
