How did the vocabulary of weather (rain, wind, storm, fog, snow, sun, cloud a...
How this study was produced: every step of the run with the file it wrote, and everything the run used, pinned to the exact version. The address of this page is derived from its content: if anything below changed, the address would change.
Paper, data and code of the study
- PaperNot public.
- DataNot public.
- CodeNot public.
Run settings
- e2er
- version 0.16.1 · code at
- Template
- text-analysis · single pass
- Governance
- full
- AI backend
- claude_code
- Models
- claude_code/sonnet
- Exported
- 20261015
- Sessions
- 10 sessions · listed with the workflow
- Outcome
- Completed · 2026-10-14 23:20 UTCe2er's internal quality review: 5.6 of 10
- e2er code
- no local changes at run time
Input data
SHA-256 of the data files, as recorded in the study's provenance.
5 data files with their hash values
- ·data/corpus_manifest.json c61f68bd6277
- ·data/data.db 03be205ef275
- ·data/data_dictionary.json 2d36969ce112
- ·data/data_sources.json 546294e6d6eb
- ·data/data_summary.md 2292e2a0138d
Data used
Project Gutenberg ebooks (catalogue via Gutendex; texts from Project Gutenberg's mirror) · 20 loads · release 2026-10-14 · read 2026-10-14
e2er's connector for it · about this data source
Terms The books are not restricted by copyright in the United States; e2er stores the text with Project Gutenberg's licence and all references to Project Gutenberg removed, which leaves "a text unrestricted by U.S. intellectual property law". Check the copyright law of your country. Full terms
References (18)
The works the paper cites, as the dossier records them: 0 from the authors' papers, 12 found on the web by the literature search, 6 method sources from the template.
A method source is a work the template credits for a method it uses. e2er adds it to the study's bibliography; the paper cites the ones its study used.
18 references· 0 from the authors' papers, 12 found on the web, 6 method sources from the template
- Talking about the weather : climate and the Victorian novel (2008) found on the web
- Fog, Coal, Capitalism: Dickens's Energy Atmospherics and the Anthropocene (2020) found on the web · doi:10.5250/resilience.7.2-3.0132
- Quantitative Analysis of Culture Using Millions of Digitized Books (2010) found on the web · doi:10.1126/science.1199644
- Why the quantitative analysis of diachronic corpora that does not consider the temporal aspect of time-series can lead to wrong conclusions (2015) found on the web · doi:10.1093/llc/fqv030
- The Impact of Lacking Metadata for the Measurement of Cultural and Linguistic Change Using the Google Ngram Data Sets—Reconstructing the Composition of the German Corpus in Times of WWII (2015) found on the web · doi:10.1093/llc/fqv037
- London Fog: A Century of Pollution and Mortality, 1866-1965 (2018) found on the web · doi:10.3386/w24488
- RUSKIN ON THE PATHETIC FALLACY, OR ON HOW A MORAL THEORY OF ART MAY FAIL (1955) found on the web · doi:10.1111/1540_6245.jaac14.2.0248
- ‘The One Life within Us and Abroad’ : Pathetic Fallacy Reconsidered (2015) found on the web · doi:10.5040/9780567662064.ch-007
- Artistic Objectivity: From Ruskin’s ‘Pathetic Fallacy’ to Creative Receptivity (2020) found on the web · doi:10.1093/aesthj/ayaa041
- The Polite Revolution of Computational Literary Studies (2022) found on the web · doi:10.1515/9783110781502-001
- The Scales of (Computational) Literary Studies: Martin Mueller’s Concept of Scalable Reading in Theory and Practice (2023) found on the web · doi:10.1515/9783111317779-011
- Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts (2013) method source · doi:10.1093/pan/mps028
- Text as Data (2019) method source · doi:10.1257/jel.20181020
- Project Gutenberg found on the web
- Accurate Methods for the Statistics of Surprise and Coincidence (1993) method source
- Comparing corpora using frequency profiling (2000) method source · doi:10.3115/1117729.1117730
- Log Ratio - an informal introduction (2014) method source
- Word Association Norms, Mutual Information, and Lexicography (1990) method source
e2er's internal quality review
Six reviewer specialists each score the draft from one angle, on a scale of 0 to 10. The score in the middle is the weighted average of these scores, with the weights in the table.
5.6 of 10
| Reviewer | Score | Weight |
|---|---|---|
| data | 5.5 | 1.25 |
| methods | 5.0 | 1.5 |
| plausibility | 5.5 | 1 |
| technical | 6.0 | 1 |
| writing | 6.5 | 0.75 |
Workflow (68 steps)
The run in order, from the run's own record. The run was carried out in 10 sessions. How to read it
A session is one e2er process, from a start or a resume to the next stop, and each session names the e2er version and commit its steps ran on. Each specialist step shows the model, the file it wrote and the file's hash value (SHA-256). Where the run did not record the hash value, the step says so: the last step that wrote a file shows the hash value of the file at export, and earlier steps that wrote the same file are marked as superseded. Checks that stopped a step are listed where they happened: 10 here. Steps taken by the researcher (9 here) are marked with a grey dot. Stops, pauses and failures of the run are marked with a ring, at their time.
21 researcher decisions and stops · 9 actions · 10 stops · 0 approved deviations · 2 failures
- Session 3 Run failed
- Session 4 Run cancelled
- Session 1 Check corpus design failed, step stopped
- Session 3 Check contracts failed, step stopped
- Session 3 Check contracts failed, step stopped
All 21, by session
- Session 1 Check corpus design failed, step stopped · Researcher sent back data architect
- Session 2 Researcher gave an instruction for review design · Researcher approved review design
- Session 3 Check contracts failed, step stopped · Check contracts failed, step stopped · Run failed
- Session 4 Check contracts failed, step stopped · Check text results failed, step stopped · Run cancelled · Researcher reran initial
- Session 6 Check contracts failed, step stopped · Check contracts failed, step stopped · Check contracts failed, step stopped · Check figure data failed, step stopped · Check figure gate failed, run stopped · Researcher gave an instruction for figure gate · Researcher sent back econometrics specialist
- Session 7 Researcher sent back paper drafter
- Session 8 Researcher sent back abstract writer
- Session 9 Researcher approved review draft
Session 1 of 10 2026-10-14 17:57–18:01 UTC · e2er 0.16.1 · 7 steps · literature scanner, idea developer, data architect · 1 researcher action · 1 check failed · Run stopped for the researcher's review (review design)
- Run: backend identity · 17:57
- Run: method sources · 17:57
- Initial
- literature scanner · sonnet · 17:57–17:58 design/literature_review.md 28bcc981f0ec
- Run: attempt usage · 17:58
- idea developer · sonnet · 17:57–17:58 design/paper_plan.md 1b78108d4f24
- Run: attempt usage · 17:58
- data architect · sonnet · 17:58–18:00 data/data_dictionary.json 5d24cbe39b37design/corpus_design.json 973a41331bfa
- Check: corpus design failed, step stopped
What the check found
(d) preprocessing.lemmatisation must be "none" or {"file": "<word,lemma table>", "source": ...}; e2er applies the table, so a lemmatiser's output is recorded as one - Run: attempt usage · 18:00
- data architect · sonnet · 18:00–18:00 data/data_dictionary.json 5d24cbe39b37 (unchanged by this step)design/corpus_design.json 01b091abf426
- Check: corpus design passed
- Run: attempt usage · 18:00
- Run stopped for the researcher's review (review design) · 18:00
- Researcher sent back data architect · 18:01 Corpus design fixes (corpus_design.json and data_dictionary.json): (1) Exact word forms only, no wildcards at all: replace raindrop*, hailstone*, thunderstorm*, hurricane*, snowflake*, snowdrift*, icicle*, sunbeam* by their singular and plural forms (raindrop, raindrops, ...). (2) Drop 'hail' (greeting and 'within hail' outnumber weather hail in novels) and 'storming' (storming a fort); keep shower(s), thunder*, icy, cloud forms but list them as ambiguous in the validation note so the hand-checked sample covers them. (3) Drop pub_year entirely: no publication year is looked up or used, not even as a robustness check; the time axis is the author's birth year as the Gutenberg catalogue records it. (4) Translations: exclude books with a translator in the catalogue record and say so. (5) State in the limits that the frame is the 320 most popular catalogue rows per cohort search (popularity-sorted), and that word counts are known only after the texts are loaded, so the 30,000-token rule is applied after loading and may shrink a cohort below 20 (then all cohorts are cut to the smallest n, as planned). Keep about 120 novels, at most two per author, the seed and everything else.
Session 2 of 10 2026-10-14 18:01–18:02 UTC · e2er 0.16.1 · 4 steps · data architect · 2 researcher actions · Run stopped for the researcher's review (review design)
- Run: backend identity · 18:01
- Initial
- data architect · sonnet · 18:01–18:02 Run again after the researcher sent it back data/data_dictionary.json 13b63cf1903edesign/corpus_design.json b7c37b281253
- Check: corpus design passed
- Run: attempt usage · 18:02
- Run stopped for the researcher's review (review design) · 18:02
- Researcher gave an instruction for review design · 18:02 The corpus design (corpus_design.json, data_dictionary.json) replaces paper_plan.md where they differ: no publication years at all - neither looked up for a subsample nor approximated as birth year + k; the only time axis is the author's birth year as the Gutenberg catalogue records it, and the paper says that cohorts overlap in publication years and that period and cohort cannot be separated. No gender or nationality coding. Exact word forms as listed, no wildcards.
- Researcher approved review design · 18:02
Session 3 of 10 2026-10-14 18:02–18:43 UTC · e2er 0.16.1 · 5 steps · data analyst · 2 checks failed · Run failed
- Run: backend identity · 18:02
- Initial
- Check: contracts failed, step stopped
What the check found
summary_statistics.json: empty JSON ('{}'); data.db: data_dictionary.json declares tables that were not loaded — missing from data.db: gutenberg_texts_c1, gutenberg_texts_c2, gutenberg_texts_c3, gutenberg_texts_c4, gutenberg_texts_c5, gutenberg_texts_c6; loaded without values: gutenberg_books_c1.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c1.download_count: 0 of 320 non-null (needs 50%); gutenberg_books_c2.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c2.download_count: 0 of 320 non-null (needs 50%); gutenberg_books_c3.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c3.download_count: 0 of 320 non-null (needs 50%); gutenberg_books_c4.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c4.download_count: 0 of 320 non-null (needs 50%); gutenberg_books_c5.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c5.download_count: 0 of 320 non-null (needs 50%); gutenberg_books_c6.copyright: 0 of 320 non-null (needs 50%); gutenberg_books_c6.download_count: 0 of 320 non-null (needs 50%). Tables in data.db: gutenberg_books_c1 (320 rows), gutenberg_books_c2 (320 rows), gutenberg_books_c3 (320 rows), gutenberg_books_c4 (320 rows), gutenberg_books_c5 (320 rows), gutenberg_books_c6 (320 rows). Load each series with `e2er-data ... --table <name>`; a table whose values are NULL was not loaded (check the connector's error, e.g. an API key). - data analyst · sonnet · 18:02–18:12 data/data_summary.md eb3c7ff241dfresults/summary_statistics.json ca3d163bab05results/figure_spec.json ca3d163bab05data/corpus_manifest.json ca3d163bab05
- Run: attempt usage · 18:12
- Check: contracts failed, step stopped
What the check found
data.db: data_dictionary.json declares tables that were not loaded — missing from data.db: gutenberg_texts_c1, gutenberg_texts_c2, gutenberg_texts_c3, gutenberg_texts_c4, gutenberg_texts_c5, gutenberg_texts_c6. Tables in data.db: gutenberg_books_c1 (320 rows), gutenberg_books_c2 (320 rows), gutenberg_books_c3 (320 rows), gutenberg_books_c4 (320 rows), gutenberg_books_c5 (320 rows), gutenberg_books_c6 (320 rows). Load each series with `e2er-data ... --table <name>`; a table whose values are NULL was not loaded (check the connector's error, e.g. an API key). - data analyst · sonnet · 18:12–18:13 data/data_summary.md e58c6bfe6827results/summary_statistics.json 0eaa5e278e18results/figure_spec.json ca3d163bab05 (unchanged by this step)data/corpus_manifest.json ca3d163bab05 (unchanged by this step)
- Run: attempt usage · 18:13
- data analyst · sonnet · 18:13–18:43 data/data_summary.md e58c6bfe6827 (unchanged by this step)results/summary_statistics.json 0eaa5e278e18 (unchanged by this step)results/figure_spec.json ca3d163bab05 (unchanged by this step)data/corpus_manifest.json ca3d163bab05 (unchanged by this step) Claude Code timed out after 1800s (limit 1800s)
- Run: attempt usage · 18:43
- Run failed · 18:43 RuntimeError: All specialists failed in parallel batch: data_analyst: Claude Code timed out after 1800s (limit 1800s)
Session 4 of 10 2026-10-14 18:43–19:03 UTC · e2er 0.16.1 · 9 steps · data analyst, econometrics specialist · 1 researcher action · 2 checks failed · Run cancelled
- Run: backend identity · 18:43
- Initial
- Check: contracts failed, step stopped
What the check found
data_summary.md: data_summary.md must name each loaded table with its actual row count from data.db; missing or wrong for: gutenberg_books_c2 (actual 320 rows), gutenberg_books_c3 (actual 320 rows), gutenberg_books_c4 (actual 320 rows), gutenberg_books_c5 (actual 320 rows), gutenberg_texts_c2 (actual 19 rows), gutenberg_texts_c3 (actual 20 rows), gutenberg_texts_c4 (actual 20 rows), gutenberg_texts_c5 (actual 20 rows), gutenberg_texts_c6 (actual 20 rows) - data analyst · sonnet · 18:43–18:55 data/data_summary.md f021d699a09fresults/summary_statistics.json 3b1abb1dc509results/figure_spec.json 7a6f66284280data/corpus_manifest.json 08e5f808c2b4
- Run: attempt usage · 18:55
- data analyst · sonnet · 18:55–18:55 data/data_summary.md d0b619e6cbebresults/summary_statistics.json 3b1abb1dc509 (unchanged by this step)results/figure_spec.json 7a6f66284280 (unchanged by this step)data/corpus_manifest.json 08e5f808c2b4 (unchanged by this step)
- Run: attempt usage · 18:55
- Check: corpus passed
- econometrics specialist · sonnet · 18:55–18:58 design/econometric_spec.md 18c0a21914e0results/estimation_results.json ee5e0b73d10e
- Run: attempt usage · 18:58
- Check: text results failed, step stopped
What the check found
(v) no figure shows models.keyness_c1 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_c1.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_weather_c1 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_weather_c1.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_c2 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_c2.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_weather_c2 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_weather_c2.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_c3 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_c3.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_weather_c3 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_weather_c3.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_c4 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_c4.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_weather_c4 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_weather_c4.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_c5 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_c5.outputs...", "fields": {...}}, and name it in the results' 'figures'; (v) no figure shows models.keyness_weather_c5 (key terms): add one to figure_spec.json with "source": {"results": "models.keyness_weather_c5.outputs...", "fields": {...}}, and name - econometrics specialist · sonnet · 18:58–18:59 design/econometric_spec.md 18c0a21914e0 (unchanged by this step)results/estimation_results.json 8179c58a3b36
- Run: attempt usage · 18:59
- Check: text results passed
- Run cancelled · 19:02
- Researcher reran initial · 19:03 Steps run again: initial, estimation gate, figure gate, review draft, review, revision, replication No translations: the corpus still holds ten translated novels - Dumas (pg1258, pg2759, pg1608), Gautier (pg1235), Muehlbach (pg4067), Gaboriau (pg1748, pg547), Verne (pg1353, pg83), Flaubert (pg1290). Exclude them, and exclude any candidate whose bookshelves name a non-English literature ('Category: French Literature', German, Russian, Italian, Spanish, Scandinavian, ...) or whose subjects say 'Translations into English'. Also drop non-novels kept by the loose subject filter: Sartor Resartus (pg1051), Our Village (pg2496), Nature and Human Nature (pg6112), A Dream of John Ball (pg357). Refill from the next ranks of the seeded draw order and from the catalogue tables and extra CSVs already in the workspace; load the replacement texts in at most one e2er-data gutenberg text call per cohort (Gutendex is slow; the texts already in data.db are not loaded again). If a cohort still has fewer than 18 eligible novels, cut every cohort to the smallest n, as the design says. Then redo the analysis on the corrected corpus; nothing else changes.
Session 5 of 10 2026-10-14 19:03–22:47 UTC · e2er 0.16.1 · 1 step · Run paused
- Run: backend identity · 19:03
- Initial
- Check: text results passed
- Run paused · 22:47 interrupted — the server stopped while this paper was running
Session 6 of 10 2026-10-14 22:48–23:06 UTC · e2er 0.16.1 · 19 steps · data analyst, econometrics specialist, text validator and 2 more · 2 researcher actions · 5 checks failed · Run: attempt usage
- Run: backend identity · 22:48
Initial 14 steps · data analyst, econometrics specialist, text validator and 2 more · 22:48–23:04 · 3 checks failed · Run: attempt usage
- Check: contracts failed, step stopped
What the check found
data.db: data_dictionary.json declares tables that were not loaded — loaded without values: gutenberg_texts_c3_refill.authors: 8 of 9 non-null (needs 90%); gutenberg_texts_c3_refill.author_birth_year: 8 of 9 non-null (needs 90%); gutenberg_texts_c3_refill.author_death_year: 8 of 9 non-null (needs 90%). Tables in data.db: corpus (84 rows), corpus_cohort_summary (6 rows), corpus_token_counts (84 rows), gutenberg_books_c1 (320 rows), gutenberg_books_c2 (320 rows), gutenberg_books_c3 (320 rows), gutenberg_books_c4 (320 rows), gutenberg_books_c5 (320 rows), gutenberg_books_c6 (320 rows), gutenberg_texts_c1 (20 rows), gutenberg_texts_c2 (19 rows), gutenberg_texts_c3 (20 rows), gutenberg_texts_c3_refill (9 rows), gutenberg_texts_c4 (20 rows), gutenberg_texts_c5 (20 rows), gutenberg_texts_c6 (20 rows), weather_dictionary_hits (2311 rows). Load each series with `e2er-data ... --table <name>`; a table whose values are NULL was not loaded (check the connector's error, e.g. an API key). - data analyst · sonnet · 22:48–22:52 data/data_summary.md 92a0feb2649eresults/summary_statistics.json fa29b2cfef56results/figure_spec.json dc9cae56975bdata/corpus_manifest.json c61f68bd6277
- Run: attempt usage · 22:52
- data analyst · sonnet · 22:52–22:53 data/data_summary.md 2292e2a0138dresults/summary_statistics.json fa29b2cfef56 (unchanged by this step)results/figure_spec.json dc9cae56975b (unchanged by this step)data/corpus_manifest.json c61f68bd6277 (unchanged by this step)
- Run: attempt usage · 22:53
- Check: corpus passed
- econometrics specialist · sonnet · 22:53–22:53 design/econometric_spec.md 4836e9af62c4results/estimation_results.json fe9cca90838c
- Run: attempt usage · 22:53
- Check: text results passed
- text validator · sonnet · 22:53–23:00 results/text_validation.md dd84e0a69aa9results/text_validation.json 893c28c8f544
- Run: attempt usage · 23:00
- Check: text validation passed
- Check: contracts failed, step stopped
What the check found
abstract.tex: 1 construction(s) the researcher does not accept in a paper: "rather than" in: Cohort differences in these families may therefore reflect figurative use rather than weather description. (state the positive claim and stop). Rewrite each of these sentences without the construction; keep its content - abstract writer · sonnet · 23:00–23:01 paper/abstract.tex 7c4cf8ed2e2e
- Run: attempt usage · 23:01
- abstract writer · sonnet · 23:01–23:01 paper/abstract.tex 4909138d298a
- Run: attempt usage · 23:01
- Check: contracts failed, step stopped
What the check found
paper_draft.tex: 2 construction(s) the researcher does not accept in a paper: "Against this background" in: Against this background, this paper fixes the genre (novels), fixes the source (Project Gutenberg), and indexes authors by birth year. (pivot to the contribution directly (for instance: To keep these quantities apart, we propose ...)); "rather than" in: First, we provide a new descriptive fact: a documented cohort profile of a concrete lexical field in the English novel, normalised by tokens and reported with intervals that resample authors rather than tokens. (state the positive claim and stop). Rewrite each of these sentences without the construction; keep its content - paper drafter · sonnet · 23:00–23:04 paper/paper.tex d025cd83ba4bresults/table_spec.json c8b527da54d6
- Run: attempt usage · 23:04
- paper drafter · sonnet · 23:04–23:04 paper/paper.tex 1cee0b7284c9results/table_spec.json c8b527da54d6 (unchanged by this step)
Estimation gate 1 step · 23:04
- Check: estimation passed
Figure gate 4 steps · 23:04–23:06 · 2 researcher actions · 2 checks failed · Run: attempt usage
- Check: figure data failed, step stopped
What the check found
fig_corpus_tokens_by_cohort.pdf names no 'source' (a data.db table and columns, or a results path); fig_corpus_median_length_by_cohort.pdf names no 'source' (a data.db table and columns, or a results path); fig_cohort_trend.pdf series rain: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series wind: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series storm: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series fog: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series snow: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series sun: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series cloud: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1') - Check: figure gate failed, run stopped
What the check found
fig_corpus_tokens_by_cohort.pdf names no 'source' (a data.db table and columns, or a results path); fig_corpus_median_length_by_cohort.pdf names no 'source' (a data.db table and columns, or a results path); fig_cohort_trend.pdf series rain: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series wind: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series storm: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series fog: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series snow: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series sun: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1'); fig_cohort_trend.pdf series cloud: not the values of estimation_results.json models.cohort_trend.outputs.series (x: the figure shows '1770-1799' where the data have 'c1') - Run: attempt usage · 23:04
- Researcher gave an instruction for figure gate · 23:06 Draft corrections (for whoever writes or revises paper_draft.tex and abstract.tex): (1) Do not attribute to Waugh 2008 or Laughlin 2020 a claim that fog rose, storms receded, or sun and rain receded; say only what they treat (weather and climate as a theme of the Victorian novel; Dickens's fog and coal), and drop 'literary scholars often claim fog rising and storms receding' from the abstract. (2) Snow and ice: one consistent statement everywhere - 0.82 in cohort 1 to a peak of 2.06 in cohort 5 and 1.44 in cohort 6, not 'roughly double' in one place and 'two and a half times' in another. (3) Fog: the hand check found 0 of 4 fog hits in cohort 6 to be weather and fog precision is 0.50 overall, so the higher fog/mist rate in cohort 6 cannot be read as more fog description; say this wherever the fog rise is mentioned (abstract, results, conclusion) and report the post-hoc reduced-lexicon result next to it. (4) The robustness section shows flat, flat and rising profiles - no lexicon variant falls - so remove 'a flat, a rising or a falling profile' and 'can change sign'. (5) The collocates do not show 'no sign of a different sense in the aggregate': adjacent-pair PMI says nothing about figurative use, and the validation shows it for storm, fog and cloud words; delete that clause. (6) Limitations: no gender, ethnicity or nationality was coded and no publication year was looked up, so delete 'under-represents women, authors of colour', 'British and American' and 'mostly early works'; say instead that the composition by these traits is unknown. (7) Cohort labels: the design ranges are 1770-1799 ... 1880-1899, but the realised birth years are 1770-1797 ... 1880-1890; say so once in the corpus section and use 'born 1770-1890' for the corpus as a whole.
- Researcher sent back econometrics specialist · 23:06 Figure check: (a) fig_corpus_tokens_by_cohort and fig_corpus_median_length_by_cohort need a 'source' (data.db table and columns, or a results path) in figure_spec.json; (b) fig_cohort_trend must plot the x values as they are in models.cohort_trend.outputs.series ('c1'...'c6'); put the birth-year ranges in the caption or axis title, not in place of the data values. Also add ONE robustness entry, labelled as defined after the hand check (post hoc): the composite and the storm, fog and cloud families recomputed without the forms the validation judged unusable (thunder, thunders, thundered, thundering, hurricane, haze, hazy, clouded, cloudy, overcast) and without capitalised mid-sentence hits, with cohort rates per 10,000 tokens, author-bootstrap intervals and the Spearman summary as for the other lexicon variants. Change nothing else; rerun run_estimation.py so the results come from the code.
Session 7 of 10 2026-10-14 23:06–23:07 UTC · e2er 0.16.1 · 6 steps · econometrics specialist · 1 researcher action · Run stopped for the researcher's review (review draft)
- Run: backend identity · 23:06
- Figure gate
- econometrics specialist · sonnet · 23:06–23:07 Run again after the researcher sent it back design/econometric_spec.md 636372e4e360results/estimation_results.json f09a2bb0b2d1
- Run: attempt usage · 23:07
- Check: text results passed
- Check: text validation passed
- Estimation gate
- Check: estimation passed
- Figure gate
- Check: figure data passed
- Run stopped for the researcher's review (review draft) · 23:07
- Researcher sent back paper drafter · 23:07 Revise paper_draft.tex and abstract.tex on the current estimation_results.json: apply the seven draft corrections in researcher_instructions.md (instruction at the figure check). In addition: (8) report robustness.post_hoc_reduced_lexicon in the robustness section and say it was defined after the hand check: the composite becomes flat (Spearman -0.09), the fog/mist rise weakens (0.65 in cohort 1 to 1.26 in cohort 6, Spearman 0.54, p = 0.27), and storm words fall more steadily (1.68 to 0.96, Spearman -0.94, p = 0.005); because the term list was chosen after looking at the sample and the precision of the reduced storm family was not re-checked, call the storm decline a pattern worth testing, not a finding, and keep the snow and ice wording at 'suggestive'. (9) Figure captions: the trend figure's x axis shows cohorts c1-c6; give the realised birth years in the caption. Keep every number traced to a source comment as now; change nothing else.
Session 8 of 10 2026-10-14 23:07–23:09 UTC · e2er 0.16.1 · 3 steps · paper drafter · 1 researcher action · Run stopped for the researcher's review (review draft)
- Figure gate
- Check: figure data passed
- Run: backend identity · 23:07
- paper drafter · sonnet · 23:07–23:08 Run again after the researcher sent it back paper/paper.tex 4b72c9383d7aresults/table_spec.json c8b527da54d6 (unchanged by this step)
- Run: attempt usage · 23:08
- Run stopped for the researcher's review (review draft) · 23:08
- Researcher sent back abstract writer · 23:09 abstract.tex is from before the corrections and contradicts the revised paper (unsupported 'literary scholars often claim fog rising and storms receding', 'roughly double', uncaveated fog rise). Rewrite it from the abstract and results now in paper_draft.tex: snow/ice 0.82 to a 2.06 peak and 1.44 (suggestive), tempest in the earliest cohort, fog rise not readable as fog description (0 of 4 cohort-6 fog hits were weather), precision 0.71 overall and 0.42/0.50/0.58 for storm/fog/cloud, the post-hoc storm decline as a pattern worth testing; no causal claim.
Session 9 of 10 2026-10-14 23:09 UTC · e2er 0.16.1 · 3 steps · abstract writer · 1 researcher action · Run stopped for the researcher's review (review draft)
- Figure gate
- Check: figure data passed
- Run: backend identity · 23:09
- abstract writer · sonnet · 23:09–23:09 Run again after the researcher sent it back paper/abstract.tex 167f6b850f46
- Run: attempt usage · 23:09
- Run stopped for the researcher's review (review draft) · 23:09
- Researcher approved review draft · 23:09
Session 10 of 10 2026-10-14 23:09–23:20 UTC · e2er 0.16.1 · 11 steps · writing reviewer, technical reviewer, data reviewer and 4 more · Run: attempt usage
Estimation gate 1 step · 23:09
- Check: estimation passed
Figure gate 1 step · 23:09 · Run: backend identity
- Check: figure data passed
- Run: backend identity · 23:09
Review 7 steps · writing reviewer, technical reviewer, data reviewer and 2 more · 23:09–23:16 · Run: attempt usage
- Check: numbers passed
- Check: citations passed
- writing reviewer · sonnet · 23:10–23:12 reviews/review_writing.md 11852395c4c0
- Run: attempt usage · 23:12
- technical reviewer · sonnet · 23:10–23:13 reviews/review_technical.md f52768dc34f0
- Run: attempt usage · 23:13
- data reviewer · sonnet · 23:10–23:13 reviews/review_data.md f5295a6c4d0a
- Run: attempt usage · 23:13
- methods reviewer · sonnet · 23:12–23:15 reviews/review_methods.md 51f0472b54b0
- Run: attempt usage · 23:15
- plausibility reviewer · sonnet · 23:13–23:16 reviews/review_plausibility.md e9a1d3d426e9
- Run: attempt usage · 23:16
Revision 1 step · patch revisor · 23:16–23:18 · Run: attempt usage
- patch revisor · sonnet · 23:16–23:18 misc/paper_draft.tex.edits.json acbf8d3f6256
- Run: attempt usage · 23:18
Replication 1 step · replication packager · 23:18–23:20 · Run: attempt usage
- replication packager · sonnet · 23:18–23:20 replication/estimation.py e30852fabefa
- Run: attempt usage · 23:20
The run ended: completed · 2026-10-14 23:20 UTC
What it was built with (59)
Each part with its authors and the version used. e2er parts are pinned by git's content hash of their file at the commit above; follow a link to read that exact version.
Templates (1)
· by e2er authors
| Template | By | Pinned version |
|---|---|---|
| text-analysis | e2er authors | unresolved: the run recorded no E2ER commit |
Specialists (15)
· by e2er authors
| Specialist | By | Pinned version |
|---|---|---|
| abstract_writer | e2er authors | unresolved: the run recorded no E2ER commit |
| data_analyst | e2er authors | unresolved: the run recorded no E2ER commit |
| data_architect | e2er authors | unresolved: the run recorded no E2ER commit |
| data_reviewer | e2er authors | unresolved: the run recorded no E2ER commit |
| econometrics_specialist | e2er authors | unresolved: the run recorded no E2ER commit |
| idea_developer | e2er authors | unresolved: the run recorded no E2ER commit |
| literature_scanner | e2er authors | unresolved: the run recorded no E2ER commit |
| methods_reviewer | e2er authors | unresolved: the run recorded no E2ER commit |
| paper_drafter | e2er authors | unresolved: the run recorded no E2ER commit |
| patch_revisor | e2er authors | unresolved: the run recorded no E2ER commit |
| plausibility_reviewer | e2er authors | unresolved: the run recorded no E2ER commit |
| replication_packager | e2er authors | unresolved: the run recorded no E2ER commit |
| technical_reviewer | e2er authors | unresolved: the run recorded no E2ER commit |
| text_validator | e2er authors | unresolved: the run recorded no E2ER commit |
| writing_reviewer | e2er authors | unresolved: the run recorded no E2ER commit |
Skills (42)
· by e2er authors
| Skill | By | Pinned version |
|---|---|---|
| researcher | e2er authors | unresolved: the run recorded no E2ER commit |
| cleaning | e2er authors | unresolved: the run recorded no E2ER commit |
| data-tables | e2er authors | unresolved: the run recorded no E2ER commit |
| eurostat | e2er authors | unresolved: the run recorded no E2ER commit |
| exoplanets | e2er authors | unresolved: the run recorded no E2ER commit |
| figure-spec | e2er authors | unresolved: the run recorded no E2ER commit |
| fred | e2er authors | unresolved: the run recorded no E2ER commit |
| gaia | e2er authors | unresolved: the run recorded no E2ER commit |
| gisco | e2er authors | unresolved: the run recorded no E2ER commit |
| github | e2er authors | unresolved: the run recorded no E2ER commit |
| gmd | e2er authors | unresolved: the run recorded no E2ER commit |
| gutenberg | e2er authors | unresolved: the run recorded no E2ER commit |
| nasa_power | e2er authors | unresolved: the run recorded no E2ER commit |
| naturalearth | e2er authors | unresolved: the run recorded no E2ER commit |
| noaa | e2er authors | unresolved: the run recorded no E2ER commit |
| owid | e2er authors | unresolved: the run recorded no E2ER commit |
| query-data | e2er authors | unresolved: the run recorded no E2ER commit |
| summary-statistics-schema | e2er authors | unresolved: the run recorded no E2ER commit |
| table-spec | e2er authors | unresolved: the run recorded no E2ER commit |
| text-results-schema | e2er authors | unresolved: the run recorded no E2ER commit |
| usgs | e2er authors | unresolved: the run recorded no E2ER commit |
| who_gho | e2er authors | unresolved: the run recorded no E2ER commit |
| worldbank | e2er authors | unresolved: the run recorded no E2ER commit |
| yfinance | e2er authors | unresolved: the run recorded no E2ER commit |
| panel-data | e2er authors | unresolved: the run recorded no E2ER commit |
| text-analysis | e2er authors | unresolved: the run recorded no E2ER commit |
| anti-slop | e2er authors | unresolved: the run recorded no E2ER commit |
| creative-ideation | e2er authors | unresolved: the run recorded no E2ER commit |
| novelty | e2er authors | unresolved: the run recorded no E2ER commit |
| consistency-check | e2er authors | unresolved: the run recorded no E2ER commit |
| data-quality | e2er authors | unresolved: the run recorded no E2ER commit |
| domain-plausibility | e2er authors | unresolved: the run recorded no E2ER commit |
| methods-review | e2er authors | unresolved: the run recorded no E2ER commit |
| technical-review | e2er authors | unresolved: the run recorded no E2ER commit |
| writing-quality | e2er authors | unresolved: the run recorded no E2ER commit |
| context-builder | e2er authors | unresolved: the run recorded no E2ER commit |
| replication-package | e2er authors | unresolved: the run recorded no E2ER commit |
| abstract | e2er authors | unresolved: the run recorded no E2ER commit |
| cite-numbers-by-source | e2er authors | unresolved: the run recorded no E2ER commit |
| paper-structure | e2er authors | unresolved: the run recorded no E2ER commit |
| personal-style | e2er authors | unresolved: the run recorded no E2ER commit |
| scoped-revision | e2er authors | unresolved: the run recorded no E2ER commit |
Connectors (1)
· by e2er authors
| Connector | By | Pinned version |
|---|---|---|
| claude-code | e2er authors | unresolved: the run recorded no E2ER commit |
Sources of the template “text-analysis”
The work the template of this run is based on, draws from or cites, as the template file names it. A source says where an idea came from; it does not say its authors endorse this study.
- Methods
Ted Dunning (1993). Accurate Methods for the Statistics of Surprise and Coincidence. Computational Linguistics 19(1), 61-74.
Paul Rayson and Roger Garside (2000). Comparing corpora using frequency profiling. Proceedings of the Workshop on Comparing Corpora (ACL 2000), 1-6.
Andrew Hardie (2014). Log Ratio - an informal introduction. ESRC Centre for Corpus Approaches to Social Science (CASS), Lancaster University.
Kenneth Ward Church and Patrick Hanks (1990). Word Association Norms, Mutual Information, and Lexicography. Computational Linguistics 16(1), 22-29.
David M. Blei, Andrew Y. Ng and Michael I. Jordan (2003). Latent Dirichlet Allocation. Journal of Machine Learning Research 3, 993-1022.
Daniel D. Lee and H. Sebastian Seung (1999). Learning the parts of objects by non-negative matrix factorization. Nature 401(6755), 788-791.
Derek Greene, Derek O'Callaghan and Pádraig Cunningham (2014). How Many Topics? Stability Analysis for Topic Models. Machine Learning and Knowledge Discovery in Databases (ECML PKDD 2014), Lecture Notes in Computer Science, 498-513.
Justin Grimmer and Brandon M. Stewart (2013). Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts. Political Analysis 21(3), 267-297.
Matthew Gentzkow, Bryan Kelly and Matt Taddy (2019). Text as Data. Journal of Economic Literature 57(3), 535-574.
Cite e2er with this dossier
A paper produced with e2er gives one reference for e2er: this dossier. It credits everyone listed above.
@misc{e2er-f27c22ef8543e727,
title = {e2er dossier for "How did the vocabulary of weather (rain, wind, storm, fog, snow, sun, cloud a..."},
author = {{e2er}},
year = {2026},
howpublished = {\url{https://e2er.org/d/f27c22ef8543e727}},
note = {Workflow, templates, specialists, skills, connectors and models used, pinned by content hash. Dossier sha256:f27c22ef8543e7274531ed5f890d6bc231980e1b5254529ed24ad56a28bf7d57}
}