What This Corpus Can Still Answer
For the next person who wants to use the agnostic.com + slug.com / IDW.community + Aporia datasets after the book is published. Ordered by tractability with the existing pipeline. Each entry includes the question, the data needed, the methodology that would work, and the rough scope (an afternoon, a week, a thesis).
Two production community databases, pulled from the live RDS in May 2026 and stored as gzipped MySQL dumps. agnostic.com: 81 GB raw, 209,110 users, 782,123 questions, 3,029,091 answers, 2,223,661 comments, 73,502 user-abuse rows. slug.com / IDW.community, in the truth DB: 17 GB raw, 145,827 users, 431,482 questions, 438,531 answers, 310,227 comments, 4,189 user-abuse rows. The member sets overlap by 15,957 dual-registered accounts, 291 active on both sides. The Aporia public corpus is 832 articles, all online. A local DuckDB at analysis/duckdb/community.duckdb carries 51 derived tables, validated against the RDS. 32 derived artifacts and eight idempotent Python scripts under analysis/scripts/ produced everything cited in the book. Cumulative LLM spend was $24.67. By the standards of community-research corpora not internal to a major platform, this is large.
Not Twitter / X / Facebook scale. Not a representative sample of either tribe at the national level; both communities self-selected, and Aporia subscriber data is not in scope. Personal data is constrained per CAFplan/agent-knowledge/sensitivity-inventory.md; usernames are public, but emails and IPs are filtered out of any released artifact, and bios plus posts can be triangulated. agnostic.com is one of several humanism communities of the 2017-2024 era; slug.com is one of several heterodox communities of that window. The conclusions describe these communities at this time, not all communities at all times.
Each question can be answered with the existing DuckDB, the existing pipeline, and a few SQL queries.
Why it matters: if late-night posts are more conflict-prone, moderation could throttle the queue overnight. The cheapest civility-mechanism question in the corpus.
Data: pair_scores.jsonl (49 scored pairs with timestamps), abuse-table created_at columns on both sites, q/a/c post_time columns. Method: bin abuse rows by hour-of-day, compare per-hour rate against q/a/c volume in the same hour, overlay the 49 scored civility numbers by post hour. Cost: $0. Clean result: a 24-hour curve per site showing whether reports-per-post peaks at 23:00, 02:00, or 13:00. A flat line is also a finding.
Why it matters: blocks are loud (user is gone). Hides are quiet (user is filtered for one viewer). The ratio is a behavioral indicator of whether the community is escalating or absorbing.
Data: user_abuse rows where state IN ('hide','block') on both sites, monthly buckets. Method: monthly time series of hide-count, block-count, and hide / block ratio on each site, plotted side by side. Cost: $0. Clean result: a paired line chart showing whether the ratio diverged in 2020, 2022, or never.
Why it matters: a community that loses members at 90 days is shaped differently than one that keeps them for three years, even with the same “active universe” snapshot.
Data: per-user min and max post timestamps across questions, answers, comments joined to users. Method: tenure = max(last activity) - min(first activity), bucketed by site and by registration cohort year. Cost: $0. Clean result: a per-site, per-cohort tenure distribution. Headline: one median per site with 25th and 75th percentile.
Why it matters: a high-friend-count user might be a community-builder or a serial connector. Either prediction is testable.
Data: agnostic_friends table for in-degree (truth’s friends table is empty in this dump, so this is agnostic-only). Cross with voice_trajectory_scores.jsonl and the 17,062 cluster assignments. Method: regress per-user mean civility on log in-degree, controlling for cluster. Cost: $0 reusing scores; $0.50 for a fresh sample. Clean result: a scatter and a regression coefficient with confidence interval.
Why it matters: 49% of dual-registrations were same-day, 39% agnostic-first, 11.5% truth-first. Order of joining is a soft signal of which room a person treated as primary. Natural follow-up to the chameleon study.
Data: cross_site_members.parquet (15,957 rows) joined to per-side activity counts. Method: per dual-registered user compute days-active on each side, split by join-order, plot three histograms. Cost: $0. Clean result: confirmation or rejection that join-order predicts where the user spent more days.
Each is plausible for one motivated researcher in a focused week. New scripts required, but the data is already loaded.
Question: what topics rose, fell, or persisted across both communities from 2017 through 2024? The current cluster work is behavioral, not thematic.
Method: an AI groups every question and answer into recurring topics, by month, on each side. The result is a per-site topic-trajectory chart with the top 25 topics and a side-by-side rise and fall comparison against the conflict spikes in conflict-patterns.md. Cost: $5 to $40, depending on whether the embeddings are local or hosted.
Question: when a user received a formal warning or a content-deletion event, did their per-week report-receipt rate fall in the following 30 days?
Method: identify warn / delete events in the abuse log, treat each as treatment. Difference-in-differences on per-user reports-received in the 30 days before and after, with comparable un-warned users in the same activity decile as control. Cost: $0 if you stay in SQL plus pandas. Clean result: a treatment effect estimate per site, with standard caveats about non-randomization.
Question: do users with many group memberships have higher or lower per-post conflict rates? group_members joins many-to-many with users on both sides. The book never opened this seam.
Method: per active user compute log group memberships, then regress per-post abuse-received and abuse-filed on group count, controlling for tenure days and cluster. Cost: $0. Clean result: a per-site coefficient and a plot of conflict-rate by group-count bucket.
Question: how prevalent is the deconvert-from-religion narrative in agnostic users’ early posts? Does its presence in the first 30 days of activity predict tenure, civility, or cluster membership?
Method: stratified sample of 5,000 first-30-day posts per site. an AI binary classifier with a calibrated rubric. Join back to per-user metrics. Cost: ~$15. Clean result: a prevalence rate per site, plus an engagement-trajectory comparison for users with versus without deconvert narratives in their first month.
Question: do users move between behavioral clusters over their tenure, and in which directions?
Method: redo the user-grouping pass separately on year 1, year 2, and years 3 and beyond. Match the same humans across passes. Build a transition matrix. Cost: free for the grouping, a few dollars for re-naming with AI if needed. Clean result: a transition matrix per site showing whether Bruised Seekers harden into Thoughtful Elder Skeptics, whether Heterodox Questioners drift into Cultural Grievance Veterans, or whether the user kinds stay stable.
Four deeper questions, each with a clear independent variable, dependent variable, control, and predicted result.
The book documents the empirical pattern. Each tribe held civility for prompts inside its protective fence and melted down when its outgroup was named. A paper-shaped version would formalize the prediction (civility on a prompt is a function of distance between the prompt’s named outgroup and the dominant cluster’s identity), test it on this corpus, then test it on a second (Reddit subreddits where moderation and topic mix differ, or Twitter community archives) for generalization. Independent variable: outgroup distance. Dependent: civility score. Control: prompt complexity, period, thread length. Expected result: a single coefficient that holds in both corpora.
If 6.9% of agnostic active users produce 92% of contested-thread responses, and 13.6% on slug.com produce 92% there, the welfare calculation is non-trivial. The paper would model moderation-policy levers (rate-limit the loudest 1%; raise the bar for new accounts; gate political prompts behind activity thresholds) and simulate the effect on community character measured by per-prompt civility, retention of low-activity members, and topic mix. Expected result: a Pareto frontier between voice and tone, with both communities’ actual operating points marked.
Same individual, same engine, different room: 1.46 civility points down, 1.89 argumentativeness points up on a 0-to-10 scale, 23.3 times more reports filed by the same login on the agnostic side. 108 humans were scored on both sides by an AI. 291 humans were tracked on both sides by their activity records alone. A paper would frame this as a within-subject natural experiment, control for time-of-posting and topic, and submit it to a behavioral economics or computational social science venue. Contribution: a clean within-subject estimate of the room effect on speech, distinct from the typical between-subject platform-comparison literature.
A longitudinal regression on monthly civility scores on agnostic from 2017 through 2022, with mid-2020 as the cut point and external-event volume as a covariate. Dependent variable: AI-scored civility on a stratified sample of 100 random questions per month over six years. Expected result: agnostic's median civility degraded measurably with the political wave but recovered on non-political prompts. Cost: roughly $300 in AI calls plus a month of careful design.
The honest limits.
The book runs on a small reproducible pipeline. Behavioral grouping: each active user gets a vector of twenty behaviors (post rate, answer rate, comment rate, friend count, block count, reports filed, reports received, posting-time distribution, average answer length, and so on). Each side is grouped independently. On the agnostic side, 17,062 users sort into ten kinds. On IDW, 7,522 users sort into eight. Embeddings: a local sentence-embedding model used for similarity, with the cache keyed by content hash so reruns are free. LLM scoring: an AI for naming the kinds of user, for scoring my own voice trajectory, for sorting reported items by topic, and for scoring audience reactions. To replicate: clone the repo, install the venv, place the two .sql.gz dumps in db/, run analysis/scripts/00_load_dumps.py through 07_map_responders_to_archetypes.py in order. Each script is idempotent and writes to analysis/outputs/. The DuckDB at analysis/duckdb/community.duckdb is a May 2026 snapshot, not a live mirror.
The DuckDB exists locally and is reproducible from the gzipped dumps. The raw dumps were pulled from the live RDS in May 2026 and stored at db/agnostic_data.sql.gz (1.1 GB) and db/truth_data.sql.gz (292 MB). Schema files are at db/agnostic_schema.sql.gz and db/truth_schema.sql.gz. The data is anonymous at the username level: no real names, no emails, no IPs in the released filtering. Bios are voluntary self-description and remain attached to usernames; researchers should treat them as public-by-author’s-choice but private-by-aggregation, and should not republish bio text verbatim against username in derived work. Access is at the foundation’s discretion. Reach out via the Conru Art Foundation (artlove.org). For sensitive sub-populations, for example minors at registration, user-deleted accounts, or accounts flagged as compromised, additional restriction applies and a per-project data-use agreement is required. The preference is to make the corpus available to good-faith researchers under such an agreement, not to dump it publicly. Tier 1 and Tier 2 releases are likely to be permissive. Tier 3 work, especially anything published, would benefit from a co-author conversation first.
friends table on truth exists but is empty in this dump; use followers plus group_members for social-graph work on that side.state enum has 11 values. enabled is the standard live-account marker on agnostic; on truth, retired2 is also legacy-approved and must be included in any active-user filter, otherwise you silently drop a substantial fraction of the slug.com cohort.domain column is a legacy literal that says “agnostic” on both sides. Do not use it to distinguish databases. Use the database name.report_type field. Lowercase before grouping.agnostic-archetypes.md and idw-archetypes.md were proposed by an AI from 30-user samples. The IDs and user lists are stable, but the names can shift slightly on re-run. Save the names alongside the cluster IDs so downstream artifacts stay aligned.analysis/llm_cache/ is keyed by sha256 of the prompt. Reruns are free as long as prompts are byte-identical; changing the system or user prompt re-spends.analysis/spend.jsonl is the running spend log. Tail it before launching a large LLM run.The corpus is open enough that future work is plausible without Andrew’s involvement. The right next investigator is curious about online community dynamics, comfortable with Python and SQL, and willing to read the manuscript before opening DuckDB. The Conru Art Foundation is the contact path for serious inquiries. The book closes one experiment. The corpus is open to anyone who wants to keep asking.
Art Love Salon, 110 Union Street, downtown Seattle, across from the Seattle Art Museum. Wednesday 4 to 7 pm. Free. Coffee on me.
Visit the Art Love Salon