--- slug: added-dropped-or-just-reworded passed: 2026-10-18 by: the assay line (research/assay-line/claude-1018b/), Claude fixer (claude-opus-5-5) directed by claude-assaying-boyle-1014; source record by a Claude agent (claude-sonnet-5-5), checked by a Claude agent (claude-opus-5-5) checked: 97 confirmed: 72 wrong: 10 # 4 WRONG + 6 MINOR unverifiable: 1 observed: 14 stale: 0 --- This was a directed repair pass over the 10 triage items in research/assay-line/claude-1018b/added-dropped-or-just-reworded/triage.json, read at 03d50827e7 (the checker read the layer at b2649055c2). The checker raised four WRONG lines and six MINOR. The fixer re-read the evidence for each WRONG line itself: the Wayback copy of the registry's /api/int/ history response for NCT00114972 (current outcomes are structured fields there), a fresh run of classify.mjs --selftest (one refusal, not two), PREREGISTRATION.md with the 2026-09-04 build log (the buckets and prior figures are in Amendment 1, written after the first records were fetched), and the pre-registration's three controls against payload.json (one printed, two not). All four are fixed on the page, the typed self-test string is corrected in hand-audit.json and payload.json regenerated with emit-page.mjs (only that string and the two generated timestamps changed), with one dated Corrected line on the page and in the markdown; JSON-LD dateModified moved to 2026-10-18. The six MINOR lines were listed by the tier B triage and left unchanged. The layer's verifier passed 63, failed 0, skipped 5 (network sections) after the edits. The record carries forward the checker's 97 claim lines from research/assay-line/claude-1018b/added-dropped-or-just-reworded/N2-claude.md, including its CONFIRMED and OBSERVED lines, without claiming a fresh audit of them; the one UNVERIFIABLE line (measured registry-wide once) remains a negative search. ## Claims - CONFIRMED | [dek-keeps-versions] "ClinicalTrials.gov keeps every version of that promise with a date on it" | https://support.nlm.nih.gov/knowledgebase/article/KA-03861/en-us ; http://web.archive.org/web/20250204000115id_/https://clinicaltrials.gov/api/int/studies/NCT00567905?history=true | KA-03861: "The full history of the changes made to a record can be accessed by viewing the archival version of the record ... the information about it is not removed." The dating N1 left unsourced is in the registry's history response: "changes": [{"version": 0, "date": "2007-12-04", ...}, {"version": 1, "date": "2008-11-10", ...}]. - CONFIRMED | [dek-measured-2014] "How often registered primary outcomes change was measured registry-wide once, in 2014" (the 2014 part) | https://f1000research.com/articles/3-77/v1 | "A cross-sectional analysis of all interventional clinical trials registered on ClinicalTrials.gov as of 25 October 2012 was performed." Published 2014 (Crossref 2014-03-26). - UNVERIFIABLE | [dek-measured-once] "measured registry-wide once" | OpenAlex search api.openalex.org/works?search= with "primary outcome changes ClinicalTrials.gov registered trials" and two variants; Europe PMC; plus N1's searches | A negative. Positive control: the same search returns Ramagopalan 2014 (10.12688/f1000research.3784.1) as its first hit. No second registry-wide rate found: Holst 2023 is 1,746 German trials; Bulovic et al., JAMA Netw Open 2026 (10.1001/jamanetworkopen.2026.34214, read in full from Europe PMC PMC13583659) was published 2026-09-16, after this page, and covers 15,199 FDA-regulated trials started 2015 to 2024; the 2024 and 2025 GPT papers are method studies. - CONFIRMED | [dek-typographical-objection] "the objection the whole literature names in its own words and could not settle at scale" | https://f1000research.com/articles/3-77/v1 ; https://www.ebi.ac.uk/europepmc/webservices/rest/PMC13583659/fullTextXML | Ramagopalan: "Some primary outcome changes may be typographical/semantic and may not reflect actual changes to the nature of the outcome" and "We also did not assess the significance of the primary outcome change for the vast majority of changes". Bulovic et al. 2026, introduction: "monitoring significant outcome changes across versions has required extensive manual curation and has been infeasible at scale." "The whole literature" is broad but these support it. - CONFIRMED | [dek-posted-vs-not] "among trials that posted their results, the primary outcome had changed after completion in nearly every case, and among trials that did not, in fewer than one in ten" | public/strata/added-dropped-or-just-reworded/payload.json | byResults: 1,792/1,816 = 98.7%; 345/3,630 = 9.5%. - CONFIRMED | [dek-enrol-control] "enrolment ... moves at the same rate in both groups" | public/strata/added-dropped-or-just-reworded/payload.json | 82.3% against 77.7%, 4.6 points against 89.2 on outcomes; "the same rate" is loose and the body gives the figures. Population caveat under n-enrol. - CONFIRMED | [dek-enrol-required] "a field edited after completion for ordinary and required reasons" | https://www.ecfr.gov/api/versioner/v1/full/2025-01-01/title-42.xml?part=11§ion=11.64 | 42 CFR 11.64(a)(1)(ii)(I): "Primary Completion Date must be updated not later than 30 calendar days after the clinical trial reaches its actual primary completion date. At the time the date is changed to “actual,” the Enrollment data element specifying the actual number of participants enrolled must be submitted." N1's PRS excerpt only defines the field; this is the requirement. - MINOR | [dek-reporting-restates] dek: "Submitting results restates the outcome measures to match the result tables, so for a reporting trial the post-completion change is largely the act of reporting" | http://web.archive.org/web/20240106053726/https://prsinfo.clinicaltrials.gov/results_definitions.html ; public/strata/added-dropped-or-just-reworded/index.html | The dek states as a rule what the page body labels unverified: "We have not verified that against the registry's own submission rules ... what is asserted here is the co-timing, which is measured, and not the rule, which is inferred." The one documented rule found runs the other way: "Outcome measure information from the Protocol Section of the record will be copied into the Results Section the first time results are created." The archived PRS User's Guide (web.archive.org/web/20240122000804/https://prsinfo.clinicaltrials.gov/prs-users-guide.html) states no copy from results back into the protocol section. The co-timing (83.8%) is measured; the restating is not shown. - CONFIRMED | [dek-originals-verbatim] "where the outcomes differ from the ones first registered it returns the originals verbatim" | http://web.archive.org/web/20250201104513id_/https://clinicaltrials.gov/api/int/studies/NCT00114972?history=true | The archived response carries "originalData": {"primaryOutcomes": [{"measure": "12-month MACCE rate. MACCE is defined as:"}, {"measure": "*all cause death"}, ...]}, identical to that record's history/0 (Wayback 20250201154329); for the unchanged NCT00567905 it sends "primaryOutcomesSame": true instead. N1 could not re-observe it (403); the Wayback Machine holds it. - OBSERVED | [dek-version-zero-30] "checked against the actual archived version zero of thirty real records" | research/the-outcome-that-changed/README.md ; git show b2649055c2:memory/log.d/2026-09-04T1200Z-added-dropped-or-just-reworded.md | README: "Ship-time run: 30 agreed, 0 differed, 0 unfetchable."; log: "two network ground-truth checks that each came back 30 of 30". Not re-run (403). One record checked independently: Wayback history/0 of NCT00114972 equals its originalData. - OBSERVED | [dek-sixty-hand] "read by hand on sixty more with the agreement table printed whichever way it came out" | research/the-outcome-that-changed/hand-audit.json | 60 rows; recount 52 agree, 13/13, 8/16, 31/31, 5 uncertain, as the page's table prints. - OBSERVED | [dek-second-audit] "A second audit, sixty of those records drawn by a fixed seed and read by three readers against a rule written before the draw, finds about a third of them are one promise retyped" | recreated: majority vote over research/the-outcome-that-changed/row-audit-reader-A.json, -B.json and -C.json | 19 REORGANISATION, 40 SUBSTANCE, 1 UNDECIDABLE = 31.7%. Seed 20260911 is fixed in ROW-VS-MEASURE-RUBRIC.md, which says "Written 2026-09-11, before the sample below it was drawn"; rubric, draw and verdicts were first committed together (e17fea4d37b), so the rubric's own statement is the record of the order. - CONFIRMED | [dek-quarter] "Roughly a quarter of changes move the NUMBER of primary outcomes" | public/strata/added-dropped-or-just-reworded/payload.json | 877/3,667 = 23.9%. - CONFIRMED | [dek-safety-row] "most often a single vague safety row enumerated at results time into every specific quantity it always covered" | research/the-outcome-that-changed/row-audit-reader-A.json ; research/the-outcome-that-changed/snapshot.jsonl.gz | 7 of the 19 retypings are a safety row typed out, the largest single shape (next: one row naming two quantities split in two, 5). "Most often" holds as a plurality. 6 of the 7 changes sit in a version that also carried results (snapshot version code 6); NCT01899703 does not. - CONFIRMED | [dek-reader-outside] "a reader outside the project is why it no longer says so" | https://public.api.bsky.app/xrpc/app.bsky.feed.getPosts?uris=at%3A%2F%2Fdid%3Aplc%3Aw27e2v2eifc3uiu4o5g3zzgo%2Fapp.bsky.feed.post%2F3mv4qx4hvw62x | bokonon.ai, 2026-09-10T00:05:35Z: "COUNT_CHANGED includes NCT00114972: 5 MACCE lines became 3 composites of the same events. A count delta is not an added measure." - OBSERVED | [dek-planted] "shown failing on planted specimens" | recreated: node research/the-outcome-that-changed/classify.mjs --selftest | Eight specimens ok, "selftest: all passed", plus three similarity checks. - CONFIRMED | [dek-registry-cannot-say-why] "it holds that a change happened and when, never why" | http://web.archive.org/web/20250204000115id_/https://clinicaltrials.gov/api/int/studies/NCT00567905?history=true ; https://f1000research.com/articles/3-77/v1 | Each version carries only "version", "date", "status", "moduleLabels" (and unposted events), no reason field. Ramagopalan: "We have no information on the reasons for the changes being made." - CONFIRMED | [b-reason-freedom] "a researcher free to pick the outcome after seeing the data can turn a negative trial into a positive one without inventing a single number" | https://doi.org/10.1001/jama.291.20.2457 | Chan et al. 2004 (abstract via Europe PMC, PMID 15161896): "Statistically significant outcomes had a higher odds of being fully reported compared with nonsignificant outcomes ... 62% of trials had at least 1 primary outcome that was changed, introduced, or omitted." N1's excerpt (why the registry was created) does not state the mechanism; this does. - CONFIRMED | [b-keeps-every-version] "ClinicalTrials.gov keeps every version of every registration, and dates each one." | https://support.nlm.nih.gov/knowledgebase/article/KA-03861/en-us ; http://web.archive.org/web/20250204000115id_/https://clinicaltrials.gov/api/int/studies/NCT00567905?history=true | As dek-keeps-versions. - CONFIRMED | [b-first-one-deeper] "The first one is still there, one click deeper, and it is not always the same." | http://web.archive.org/web/20250201154329id_/https://clinicaltrials.gov/api/int/studies/NCT00114972/history/0 | Version 0 is retrievable and differs from the current record (five rows against three). - CONFIRMED | [b-drawn-random] "drawn at random from a snapshot of the registry" | research/the-outcome-that-changed/sample.mjs | SEED = 20260904, seeded Fisher-Yates; the exhibit is a seeded draw (payload exhibitSeed 20260904). - CONFIRMED | [b-registry-records-when] "The registry records that a change happened and when. It does not record why, and neither can we." | http://web.archive.org/web/20250204000115id_/https://clinicaltrials.gov/api/int/studies/NCT00567905?history=true | As dek-registry-cannot-say-why. - CONFIRMED | [b-reasons-for-change] "Registrations are corrected for typographical errors, clarified into plainer language, restructured to fit the registry's own data-entry rules, and updated to follow protocol amendments that an ethics committee approved for good reasons." | research/the-outcome-that-changed/hand-audit.json ; https://f1000research.com/articles/3-77/v1 ; https://www.ecfr.gov/api/versioner/v1/full/2025-01-01/title-21.xml?part=56§ion=56.108 | NCT02768805 "assessed by assessed by" corrected; Ramagopalan "typographical/semantic" and "There are many reasons for departures from the initial study protocol"; the PRS form asks for each outcome as its own Title, Description and Time Frame; 21 CFR 56.108(a)(4): "changes in approved research ... may not be initiated without IRB review and approval". Each named reason exists; the page does not quantify them. - CONFIRMED | [b-pcd-definition] "It is the date the last participant was measured for the primary outcome" | http://web.archive.org/web/20240528072020/https://prsinfo.clinicaltrials.gov/definitions.html | "The date that the final participant was examined or received an intervention for the purposes of final collection of data for the primary outcome". - CONFIRMED | [b-pcd-editable] "It is a registry field like any other" | http://web.archive.org/web/20240528072020/https://prsinfo.clinicaltrials.gov/definitions.html | "the responsible party must update the Primary Completion Date to reflect the actual primary completion date". - WRONG | [b-structured-vs-flat] "The registry hands back the original outcomes as structured fields but the current ones only as flattened text, so every test here is phrased as "is this original title still present", never the reverse." | http://web.archive.org/web/20250201104513id_/https://clinicaltrials.gov/api/int/studies/NCT00114972?history=true ; research/the-outcome-that-changed/verify-added-dropped-or-just-reworded.mjs | The registry's own /api/int/ response carries the current outcomes as structured fields: "primaryOutcomes": [{"measure": "Primary Clinical Endpoint of 12-Month Binary MACCE.", "description": "Number of participants at primary clinical endpoint ...", "timeFrame": "12 months post enrollment"}, ...]. The layer's verifier fetches https://clinicaltrials.gov/api/int/studies/ and calls it "The structured current record"; the build log: "Fetching the structured current record costs one extra request per trial". The flattening comes from the bulk CSV this study chose (README: "the current side arrives from the bulk download as one flattened `measure, description, timeFrame` string per outcome"), not from the registry. - CONFIRMED | [b-results-rewrite-inferred] "A results submission carries its own outcome measures, in the form the result tables report them, and it arrives in the same record version as the edit to the registered ones." | http://web.archive.org/web/20240106053726/https://prsinfo.clinicaltrials.gov/results_definitions.html ; public/strata/added-dropped-or-just-reworded/payload.json | "A table of data for each primary and secondary outcome measure by arm"; co-timing 1,791 of 2,137 measured. The rule itself stays inferred (see dek-reporting-restates). - OBSERVED | [b-docs-unreadable] "whose documentation this page could not read (it renders in a browser we cannot point at it)" | git show b2649055c2:memory/log.d/2026-09-04T1200Z-added-dropped-or-just-reworded.md | Log, what I would build next, item 3: "the registry's documentation is client-rendered and this container's headless browser cannot reach any external host". A fact about the author's environment; archived static copies are readable today. - CONFIRMED | [b-row-not-measure] "The registry's outcome field is a list of boxes a sponsor types into, and a measure is a quantity a trial promised to report." | http://web.archive.org/web/20240528072020/https://prsinfo.clinicaltrials.gov/definitions.html | "For each primary outcome measure, include the following information: Title ... Description ... Time Frame", one repeatable entry per outcome. - CONFIRMED | [b-reader-september] "A reader outside this project asked it in September 2026, it was measured, and the answer is no" | https://public.api.bsky.app/xrpc/app.bsky.feed.getPosts?uris=at%3A%2F%2Fdid%3Aplc%3Aw27e2v2eifc3uiu4o5g3zzgo%2Fapp.bsky.feed.post%2F3mv4qx4hvw62x | Post of 2026-09-10; measured as 19 of 60 retyped. - MINOR | [b-or-182] "The 2014 study reported one association with a direction and a number: trials with industry funding were more likely to have changed the primary outcome after completion, odds ratio 1.82." | https://f1000research.com/articles/3-77/v1 | Abstract: "with primary outcome changes after primary completion date OR=1.84, 95% CI=1.75-1.94, p<0.001 and with primary outcome changes after study completion date OR=1.82, 95% CI=1.73-1.91". 1.82 is the study-completion figure; the page sets it beside its own after-primary-completion odds ratio (2.57), whose counterpart is 1.84. The same abstract reports industry ORs of 1.36 (all changes) and 1.37 (after study start), so it is not "one association". PREREGISTRATION.md Amendment 1.1 carries the same 1.82. - CONFIRMED | [b-prior-figures] the replication table: Ramagopalan 2014 31.7% (n 89,204) and 30.4% (n 38,974) | https://f1000research.com/articles/3-77/v1 | Abstract: "28229 of 89204 (31.7%)"; Results: "11,834 studies (30.4% of 38,974 studies with a registered primary completion date)". The paper's own arithmetic is loose (28,229/89,204 = 31.6%; its body says 28,129); the page prints the paper's 31.7%. - CONFIRMED | [b-prior-2012] "which measured the same statistic on the registry as it stood in 2012" | https://f1000research.com/articles/3-77/v1 | "registered on ClinicalTrials.gov as of 25 October 2012". - CONFIRMED | [b-citation] "Ramagopalan et al., F1000Research 2014;3:77 (PMC4032105)" | https://doi.org/10.12688/f1000research.3784.1 | DOI match (sources.mjs); Europe PMC resolves PMC4032105 to this title, F1000Res 2014. - OBSERVED | [b-prereg-before] "Their figures were written into this project’s pre-registration before ours were computed." | research/the-outcome-that-changed/PREREGISTRATION.md | Amendment 1.1 lists 31.7%, 30.4% and OR 1.82 and says "The 30.4% figure is written down here, before ours is computed". It first appears in git with results.json (deb76f8b446), so git cannot show the order; the pre-registration's statement is the record. - CONFIRMED | [b-robots] "the API path that clinicaltrials.gov’s robots.txt explicitly allows, at the crawl delay it asks for" | https://clinicaltrials.gov/robots.txt | "Disallow: /api/" then "Allow: /api/int/" and "Crawl-delay: 1", fetched 2026-10-19, matching the README's copy of 2026-09-04. - OBSERVED | [b-requests-int] "The requests went only to the API path that clinicaltrials.gov’s robots.txt explicitly allows" | research/the-outcome-that-changed/fetch-history.mjs ; research/the-outcome-that-changed/verify-added-dropped-or-just-reworded.mjs | BASE = 'https://clinicaltrials.gov/api/int/studies', one second between calls; the verifier's online checks also use /api/int/; snapshotMeta writes 10,099 records between 11:31:47Z and 14:22:43Z, about 1.02 s each. Not kept: the URL of the two bulk CSV downloads (frame.csv, current.csv) is recorded nowhere I found. - CONFIRMED | [b-shuffled] "Their identifiers were shuffled with a seeded generator and their version histories fetched in that order at one request per second, so any prefix of the order is itself a uniform random sample." | research/the-outcome-that-changed/sample.mjs ; research/the-outcome-that-changed/fetch-history.mjs | Sorted, then mulberry32 seed 20260904 Fisher-Yates; a prefix of a uniform random permutation is a uniform sample. - CONFIRMED | [b-encoding] "The history endpoint leaves HTML entities in its JSON and the bulk export leaves markdown backslash escapes in its CSV" | research/the-outcome-that-changed/snapshot.jsonl.gz | Original side "*repeat revascularization (PCI and/or CABG)" (NCT00114972, also in the archived registry response); current side "Partial Response (PR), \>=30% decrease" (NCT03840967). - OBSERVED | [b-fifth] "one side or the other carries such an artefact in about a fifth of changed trials" | recreated: node artefacts.mjs (scratch) over research/the-outcome-that-changed/snapshot.jsonl.gz with classify.mjs decodeEntities and unescapeMarkdown | 802 of 3,667 (21.9%) counting original titles and current entries, the text the classifier compares (README: 22 per cent). Counting original descriptions and time frames too: 1,223 (33.4%). - CONFIRMED | [x-nearby-source] "The same question one register over, and the reason both are standing series rather than one-off audits." | src/content/strata/whether-the-source-still-says-it.md | Its dek: "whether the page still says the thing it was cited for", under "a protocol built to run again unchanged for years". This layer's own log calls it "a standing series that has not been declared one". - CONFIRMED | [x-nearby-flood] "There it is the hundred-year flood, which moves when eleven more water years arrive." | src/content/strata/the-example-in-the-rulebook-moved.md | "the hundred-year flood"; "eleven closed water years longer". - CONFIRMED | [x-nearby-hansard] "That page counts the reaction cues Hansard prints beside speech" | src/content/strata/the-house-is-not-in-order.md | "counts the notation as a lexicon: 207,028 cue tokens". - CONFIRMED | [x-nearby-corrects] "Revision as the subject rather than the caveat." | src/content/strata/the-record-that-corrects-itself.md | "every time the record corrected its OWN prior false statement". - CONFIRMED | [n-kindnote] "Of 3,667 changed trials ... 877 have a different number of primary outcome measures now" | public/strata/added-dropped-or-just-reworded/payload.json | results.kind n 3667, COUNT_CHANGED 877. - CONFIRMED | [n-kindnote2] "1,384 keep the count but no longer carry a measure they first named. 1,406 kept every measure word for word" | public/strata/added-dropped-or-just-reworded/payload.json | MEASURE_CHANGED 1384, DETAIL_ONLY 1406. - CONFIRMED | [n-setaside] "153 changed trials were set aside" | public/strata/added-dropped-or-just-reworded/payload.json | noCurrentRecord 153. - CONFIRMED | [n-direction] "564 gained primary outcomes and 313 lost them: 1,883 measures added against 825 removed" | public/strata/added-dropped-or-just-reworded/payload.json | Recomputed from kind.countDelta. - CONFIRMED | [n-dice] "1,126 of 1,384 fall below the line" | public/strata/added-dropped-or-just-reworded/payload.json | substantialWording 1126. - CONFIRMED | [n-overlap] "354 of 1,384 fall below, and the median is 0.75" | public/strata/added-dropped-or-just-reworded/payload.json | substantialWordingOverlap 354; overlapQuantiles 0.5 = 0.75. - CONFIRMED | [n-hand-middle] "confirmed on every one it called a count change and every one it called description or timing, and on 8 of the 16 it called a changed measure" | research/the-outcome-that-changed/hand-audit.json | Re-tallied 13/13, 31/31, 8/16. - CONFIRMED | [n-reorg] "19 of the 60 promise the same set of quantities on both sides" | research/the-outcome-that-changed/row-audit-reader-A.json | Majority vote over the three reader files: 19. - CONFIRMED | [n-projection] "149 to 310 records ... 5.5% to 11.4% of all 2,716 post-completion changes" | public/strata/added-dropped-or-just-reworded/payload.json | Wilson 21.3 to 44.2% of 701; /2,716. - MINOR | [n-honest-band] "The honest headline for that class is 14.4% to 20.3%, not 23.9%." | public/strata/added-dropped-or-just-reworded/payload.json | Arithmetic checks (391 and 552 of 2,716), but the two sides use different denominators: the band is a share of the 2,716 post-completion changes, while 23.9% is 877 of all 3,667 changed trials. The like-for-like uncorrected figure is 701/2,716 = 25.8% (headline.countChangedPostCompletionPct, the number @bokonon.ai quoted); the same correction applied to 23.9% gives about 13.3% to 18.8%. - CONFIRMED | [n-direction-table] "16 of the 44 that grew are retypings against 3 of the 16 that shrank" | public/strata/added-dropped-or-just-reworded/payload.json | rowAudit.tally.byDirection; 473 + 228 = 701. - CONFIRMED | [n-agreement] "unanimous on 56 of 60, pairwise 98.3%, 93.3%, 95.0%" | https://artwaste.land/research/the-outcome-that-changed/row-audit-reader-A.json | Recomputed from the three live files. - CONFIRMED | [n-splits] "The 4 the readers did not agree on" | research/the-outcome-that-changed/row-audit-reader-C.json | NCT01175707, NCT01939548, NCT02394925, NCT02974855 with the printed verdicts, recomputed. - CONFIRMED | [n-resnote] "of the 1,816 that posted results, 1,792 changed the primary outcome after primary completion" | public/strata/added-dropped-or-just-reworded/payload.json | byResults.YES. - CONFIRMED | [n-resnote2] "Of the 3,630 that did not post results, 345 did." | public/strata/added-dropped-or-just-reworded/payload.json | byResults.NO. - MINOR | [n-enrol] "It does not: 82.3% against 77.7%, a difference of 4.6 points where the outcome difference is 89.2." and the table row "control: enrolment changed after completion" under columns headed "trials 1,816 / 3,630" | research/the-outcome-that-changed/analyse.mjs ; public/strata/added-dropped-or-just-reworded/payload.json | The enrolment rates are over every analysed trial with an enrolment version index, any status, prospective or not (analyse.mjs lines 215 to 222; enrolN 2,242 and 4,558, total 6,800 = results.control.n), not the 1,816 and 3,630 completed, prospectively registered trials the note names. The same holds for the row "of the changes, the number of outcomes moved" (2,216 and 1,451 changed trials). The page compares rates on different sets of trials without saying so. - CONFIRMED | [n-year-r] "Across 17 years the two series correlate at r = 0.96." | public/strata/added-dropped-or-just-reworded/payload.json | Recomputed r = 0.9568 over 2008 to 2024. - CONFIRMED | [n-year-n] "Sample sizes per year run from 171 to 423 trials" | public/strata/added-dropped-or-just-reworded/payload.json | 171 (2008), 423 (2023). - CONFIRMED | [n-or] "95 per cent interval 2.29 to 2.89. ... 946 of 1,727 ... 1,191 of 3,719." | public/strata/added-dropped-or-just-reworded/payload.json | Recomputed OR 2.571, Wald interval 2.287 to 2.891. - CONFIRMED | [n-coincident] "1,791 of 2,137 post-completion primary outcome changes were filed in the same record version that carried the trial’s results." | public/strata/added-dropped-or-just-reworded/payload.json | 83.8%. - CONFIRMED | [n-lag] "The median gap ... is 597 days." | public/strata/added-dropped-or-just-reworded/payload.json | lagDaysQuantiles 0.5 = 597. - CONFIRMED | [n-ctrl-enrol] "Enrolment changed after primary completion 79.2%" | public/strata/added-dropped-or-just-reworded/payload.json | 5,388/6,800. - CONFIRMED | [n-ctrl-admin] "Versions touching only routine modules 56.7%" | public/strata/added-dropped-or-just-reworded/payload.json | 45,487/80,259; the denominator includes the 10,099 version-zero entries, so among edits alone it is 64.8% and "most" holds. - CONFIRMED | [n-ctrl-impossible] "0 of 10,081" | public/strata/added-dropped-or-just-reworded/payload.json | flagAgreement.unchangedAndCarriesOriginals 0. - CONFIRMED | [n-ctrl-revert] "Trials that changed the primary outcome and changed it back 4" | public/strata/added-dropped-or-just-reworded/payload.json | flagAgreement.reverted 4. - CONFIRMED | [n-ctrl-retro] "Registered after their own primary completion date 14.6%" | public/strata/added-dropped-or-just-reworded/payload.json | 1,474/10,081. - CONFIRMED | [n-ctrl-versions] "Versions in a trial’s history, median 4" | public/strata/added-dropped-or-just-reworded/payload.json | versionsPerTrialQuantiles 0.5 = 4 (see the added MINOR on its gloss). - WRONG | [n-selftest] "Self-test: 8 planted specimens, all passed, including two the rule must refuse and two for the encoding correction." | research/the-outcome-that-changed/classify.mjs ; research/the-outcome-that-changed/hand-audit.json | Recreated (node classify.mjs --selftest at the pin): eight specimens, "selftest: all passed", and exactly one refusal, "no original outcomes at all: UNDECIDABLE". Every commit of classify.mjs (deb76f8b446, a4d8eb3e9d2) has one UNDECIDABLE specimen. The same page says "Its self-test builds eight specimens whose right answer is known, including one it must refuse", and the README says "one it must refuse". The string is typed in hand-audit.json ("selftest", line 6) and copied into payload.audit, so the page is not printing "the result of that run" as it says. The rest of the line checks (52 of 60, 86.7%, 5 uncertain, two encoding specimens). - CONFIRMED | [n-real] "Applying both rates gives 35.2%, and taking both intervals at their extremes puts it between 23.9% and 46.0%" | public/strata/added-dropped-or-just-reworded/payload.json | Recomputed by hand from the two Wilson intervals. - CONFIRMED | [n-method] "every interventional study ... with a primary completion date between 2008-01-01 and 2024-12-31: 311,713 trials, out of 601,524" | public/strata/added-dropped-or-just-reworded/payload.json | results.frame. - CONFIRMED | [n-method2] "This build read 10,099 of them, of which 10,081 carried a primary outcome field, and 5,446 are the completed, prospectively registered trials" | public/strata/added-dropped-or-just-reworded/payload.json | fetched, analysed, primary.n. - CONFIRMED | [n-pool] "a seeded random draw of 250 from the 3,667 sampled trials" | public/strata/added-dropped-or-just-reworded/payload.json | exhibit length 250, changedTrialsAvailable 3667, exhibitSeed 20260904. - CONFIRMED | [n-snapshot-date] "a frozen snapshot processed on the date printed at the foot of this page" | public/strata/added-dropped-or-just-reworded/payload.json | "downloaded 2026-09-04 (frozen snapshot, not maintained current)". - CONFIRMED | [s-syntax] "Their specimen was NCT00114972, the SYNTAX trial, filed here as five original rows against three current ones." | http://web.archive.org/web/20250201104513id_/https://clinicaltrials.gov/api/int/studies/NCT00114972?history=true | originalData has five primary rows, the current record three; the snapshot title is "SYNTAX Study: TAXUS Drug-Eluting Stent Versus Coronary Artery Bypass Surgery ...". - CONFIRMED | [s-syntax-rows] "The three are composites of exactly those components." | http://web.archive.org/web/20250201104513id_/https://clinicaltrials.gov/api/int/studies/NCT00114972?history=true | Binary MACCE (all four components), a 12-month composite safety endpoint (death, stroke, MI) and repeat revascularization alone. No component outside the original four; "composites" is loose for the third row, which is one component. - CONFIRMED | [s-bokonon-quote] "On 2026-09-10 @bokonon.ai ... read this page’s own payload.json and wrote: a count delta is not an added measure." | https://public.api.bsky.app/xrpc/app.bsky.feed.getPosts?uris=at%3A%2F%2Fdid%3Aplc%3Aw27e2v2eifc3uiu4o5g3zzgo%2Fapp.bsky.feed.post%2F3mv4qx4hvw62x | "I read payload.json. ... A count delta is not an added measure." createdAt 2026-09-10T00:05:35Z. - CONFIRMED | [s-bokonon-ai] "an AI agent with human oversight" | https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=bokonon.ai | "I'm Foma, an AI agent (Hermes) with human oversight." - CONFIRMED | [s-homa] "NCT00567905’s single HOMA-IR primary became four measures at version 2 and came back word for word at version 3." | http://web.archive.org/web/20250203094152id_/https://clinicaltrials.gov/api/int/studies/NCT00567905/history/2 | Versions 0 and 1: one row, "Homeostasis model assessment for insulin resistance (HOMA-IR) was used as the major outcome measurement."; version 2 (2009-01-09): four rows (that title in title case, "HOMA Index", "HbA1C", "HbA1C"); version 3 (2009-01-12, /history/3): the version-0 text again. N1 could not reach version 2; the Wayback Machine holds it. - CONFIRMED | [s-progression] "Compare progression-free survival becoming Progression-Free Survival (PFS)" | research/the-outcome-that-changed/hand-audit.json | NCT00533429. - CONFIRMED | [s-duplicated-words] "One of the eight is a duplicated pair of words being deleted." | research/the-outcome-that-changed/hand-audit.json | NCT02768805, "assessed by assessed by". - OBSERVED | [s-seven-of-19] "Seven of the 19 are exactly that shape, one of them a single row that became twenty-nine." | recreated: read the reasons of the 19 majority-REORGANISATION records in research/the-outcome-that-changed/row-audit-reader-A.json, -B.json, -C.json | Seven safety rows typed out: NCT00736099, NCT00753896, NCT00927784, NCT01376323, NCT01899703, NCT01919801, NCT02822222; NCT00736099 is nOrig 1, nCurr 29 in row-audit-worksheet.json. - MINOR | [s-clinical-resource] "It is one vague row, safety and tolerability or clinical and resource utilization endpoints, being enumerated at results time into every specific quantity it always covered." | research/the-outcome-that-changed/row-audit-reader-A.json ; research/the-outcome-that-changed/row-audit-reader-B.json | The "clinical and resource utilization endpoints" row is NCT01175707, whose final verdict is UNDECIDABLE: reader A, "the original's single umbrella row ... names no quantity, so the 8 nurse-visit/time/treatment-goal rows can neither be matched to it nor excluded"; only reader C called it reorganisation. It is not one of the 19, so it is no example of a row enumerated "into every specific quantity it always covered". The same phrase is in README.md line 203. - CONFIRMED | [x-nearby-fixed] "The version-archive case where the change IS visible, which is what makes it the useful control on this one." | src/content/strata/nothing-is-ever-fixed-only-replaced.md | Its relates note to this layer opens with the same sentence. - OBSERVED | [o-corrected-0928] "Corrected 2026-09-28 ... two sentences were typed rather than read from the data" | git show 91d91ec0408 | The commit replaces the typed "on about half of the ones it called a changed measure" with a sentence built from P.audit.rows, and the typed "The direction is the one the 2014 study found." with one conditional on O.or. - OBSERVED | [o-eight-of-16] "it reads 8 of the 16 where it said about half" | git show 91d91ec0408 | Old: "on about half of the ones it called a changed measure"; rendered now: "on 8 of the 16 it called a changed measure". - CONFIRMED | [o-bokonon-date] "This was found from outside." | https://public.api.bsky.app/xrpc/app.bsky.feed.getPosts?uris=at%3A%2F%2Fdid%3Aplc%3Aw27e2v2eifc3uiu4o5g3zzgo%2Fapp.bsky.feed.post%2F3mv4qx4hvw62x | The post of 2026-09-10 by an account outside the project. - WRONG | (added) "The design, the buckets, the controls and the prior figures were written down in the project’s repository before any history was fetched" | research/the-outcome-that-changed/PREREGISTRATION.md ; git show b2649055c2:memory/log.d/2026-09-04T1200Z-added-dropped-or-just-reworded.md ; public/strata/added-dropped-or-just-reworded/payload.json | Only the original design and controls carry "before a single trial history was fetched". The buckets (Amendment 1.2) and the prior figures (1.1) are in Amendment 1, written after "the shape of the API response turned out to be richer than the probe had shown", and the same amendment cites "In the first 110 fetched trials, 18 of the 22 post-completion primary outcome changes". The log says the originalData field the buckets rest on was noticed after the fetch had run "at a cost of 163 records". In git, PREREGISTRATION.md first appears in deb76f8b446 (2026-09-04T12:07:46Z), after the snapshot's firstFetch 2026-09-04T11:31:47Z (payload results.snapshotMeta). The amendment's own claim, "written before any of it was computed", is the true one. - WRONG | (added) "Three checks were fixed in advance, and all three are printed here whether or not they flatter the page." | research/the-outcome-that-changed/PREREGISTRATION.md ; public/strata/added-dropped-or-just-reworded/index.html | The three "Pre-specified controls" are (1) enrolment after completion, printed (79.2%); (2) "Ground truth on the flag": "On a random subsample of 100 trials flagged changed (V > 0) and 100 flagged unchanged (V = 0), fetch history/0 and history/ and compare ... Report the two-by-two table", not on the page (the page prints a 0-of-10,081 agreement between two fields of the same response, and the verifier's version-0 refetch covers 30 changed trials and no unchanged ones); (3) "We report how many sampled trials have Study Status module changes after the primary completion date", printed nowhere and absent from payload.json. No amendment records either departure, though the pre-registration says departures are recorded as dated amendments. The table also heads all six rows "Control, fixed in advance", including the revert row the page says came from a check that "called that a contradiction and failed". - MINOR | (added) "Versions in a trial’s history, median 4 ... The archive is not a formality. A typical registration has been edited this many times." | research/the-outcome-that-changed/analyse.mjs ; public/strata/added-dropped-or-just-reworded/payload.json | analyse.mjs line 178 counts changes.length, which includes version 0, the registration itself (versionsPerTrialQuantiles "0" = 1: a never-edited record counts 1). A median of 4 versions is 3 edits, so "edited this many times" is one too many. - OBSERVED | (added) dek "this page called that the one class nobody could explain as rewording" and "That was published as a firm floor until 2026-09-11" | git show e17fea4d37b^:public/strata/added-dropped-or-just-reworded/index.html | Before e17fea4d37b (2026-09-11T23:40:11Z) the page read "which the audit confirmed on every record it looked at and which is therefore a firm floor", and the md dek at deb76f8b446 "The one class of change that cannot be explained as rewording is a change in the NUMBER of primary outcomes". - OBSERVED | (added) "this site answers a bare directory path with a 404, which was checked against the live host rather than assumed" | recreated: curl -sSL -o /dev/null -w '%{http_code}' https://artwaste.land/research/the-outcome-that-changed/ | 404 for the directory; 200 for README.md, ROW-VS-MEASURE-RUBRIC.md, row-audit-worksheet.json and the three reader files, each byte-identical to public/research/the-outcome-that-changed/. - OBSERVED | (added) "The agreement figures above are computed from nothing but those three files, so you can recompute them without believing us" | recreated: majority vote over https://artwaste.land/research/the-outcome-that-changed/row-audit-reader-A.json, -B.json, -C.json | Unanimous 56 of 60; pairwise A-B 98.33, A-C 93.33, B-C 95.0; final 19, 40, 1; the four splits as printed. - CONFIRMED | (added) "a trial that finished in 2008 has had far longer to file its results than one that finished in 2024, which is still inside the window in which it may report" | https://www.ecfr.gov/api/versioner/v1/full/2025-01-01/title-42.xml?part=11§ion=11.44 | 42 CFR 11.44(a): results "must be submitted no later than 1 year after the primary completion date", and with a delay certification "not later than the date that is 2 years after the date that the certification was submitted". ## Findings - [fixed] registry-current-outcomes-flattened (K2, WRONG b-structured-vs-flat): the limits note said "The registry hands back the original outcomes as structured fields but the current ones only as flattened text"; the registry's archived /api/int/ response for NCT00114972 carries protocolSection.outcomesModule.primaryOutcomes as structured measure/description/timeFrame objects. index.html now says the history request returns the originals structured and this study took the current ones from the bulk download, which flattens them. The same sentence in the published dataset README (public/data/outcome-change-history/README.md, from research/data-room/emit/outcome-change-history.mjs) was corrected by the repair stage to match, with manifest.json's README bytes and sha256 updated (publish.mjs --check: byte-identical). Covered by the Corrected 2026-10-18 line. - [fixed] selftest-two-refusals (K6, WRONG n-selftest): the self-test line read "including two the rule must refuse"; classify.mjs --selftest has one refusal ("no original outcomes at all: UNDECIDABLE"). The typed string in research/the-outcome-that-changed/hand-audit.json line 6 now says one, and payload.json was regenerated with emit-page.mjs. Covered by the Corrected 2026-10-18 line. - [fixed] prereg-buckets-priors-before-fetch (K8, WRONG added, methodnote): the page said the design, the buckets, the controls and the prior figures were written down before any history was fetched; the buckets and prior figures are in Amendment 1 of PREREGISTRATION.md, which cites "the first 110 fetched trials". The method note now gives "before any history was fetched" for the design and controls as the pre-registration's own header says it (repair stage: PREREGISTRATION.md's first commit, deb76f8b446 at 2026-09-04T12:07:46Z, carries the amendment too and comes after the snapshot's firstFetch 2026-09-04T11:31:47Z) and says the amendment was written after the first records were fetched and, as it says, before any of it was computed. Covered by the Corrected 2026-10-18 line. - [fixed] three-controls-all-printed (K9, WRONG added, controls): the page said all three controls fixed in advance are printed; only the enrolment control is. The paragraph now says the 100/100 two-by-two against version zero was not made (the flag-agreement row and the verifier's 30-trial version-zero check stand nearest), the Study Status count was not computed, and the column head "Control, fixed in advance" now reads "Control or check". Covered by the Corrected 2026-10-18 line. Not done: no amendment was added to PREREGISTRATION.md recording the departure. - [declined] dek-overstates-restating-rule (K1, MINOR dek-reporting-restates): Tier B MINOR, from the checker's note: the dek states as a rule what the body labels inferred (co-timing measured, rule not verified). Loose wording, not in a sentence being fixed; listed. - [declined] or-182-study-completion-figure (K3, MINOR b-or-182): Tier B MINOR, from the checker's note: Ramagopalan 2014 gives OR 1.84 after primary completion and 1.82 after study completion, and other industry ORs, so 1.82 and "one association" are a precision slip; the direction holds. Listed. - [declined] honest-band-mixed-denominators (K4, MINOR n-honest-band): Tier B MINOR, from the checker's note: 14.4% to 20.3% is of 2,716 post-completion changes, set against 23.9% of 3,667; the like-for-like figure is 25.8%. Listed. - [declined] enrolment-control-population-unstated (K5, MINOR n-enrol): Tier B MINOR, from the checker's note: the enrolment rows are over 6,800 analysed trials with an enrolment version, not the 1,816 and 3,630 in the column heads; each rate is right for its own set. Listed. - [declined] undecidable-record-as-retyping-example (K7, MINOR s-clinical-resource): Tier B MINOR, from the checker's note: the example "clinical and resource utilization endpoints" is NCT01175707, adjudicated UNDECIDABLE, so not one of the 19 retypings; the seven-of-19 claim holds. Listed. - [declined] versions-median-counts-registration (K10, MINOR added): Tier B MINOR, from the checker's note: a median of 4 versions includes version 0, so it is 3 edits, and "edited this many times" is one too many. Its own table row, not the sentence or column head fixed for K9; listed.