# Methodology > [[Home]] · [[About This Wiki]] · [[How to Read This Wiki]] · [[License]] The Arkansas Data Centers wiki is built under a hybrid methodology that combines two independent contributions from recent LLM-tooling work. We call it the **Karpathy-Hegelion Pipeline** (sometimes "Methodology" in cross-references) because the two components correspond to the two operational problems a public-records wiki has to solve at scale. **Karpathy's persistent LLM-wiki pattern** solves the *accumulation* problem: how does a researcher build a knowledge artifact whose value compounds across hundreds of source documents, instead of having the model rediscover the corpus on every query. **Hegelion's three-phase dialectical harness** solves the *contestation* problem: how does the same researcher prevent an LLM with a strong sycophancy prior from flattening genuinely contested questions into the safest-sounding split-the-difference summary. Both components are open-source and publicly documented. Both have been adapted, not adopted wholesale — the adaptations are recorded below so a reader (or a future maintainer) can audit the deviations. --- ## I. The Karpathy layer — persistent compilation over immutable evidence ### The problem Karpathy names In a public gist published as ["LLM Wiki"](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f), Andrej Karpathy diagnoses the structural limit of retrieval-augmented generation: *"the LLM is rediscovering knowledge from scratch on every question. There's no accumulation."* His proposed remedy is to have the LLM *"incrementally build and maintain a persistent wiki — a structured, interlinked collection of markdown files that sits between you and the raw sources."* The wiki becomes *"a persistent, compounding artifact"* whose *"cross-references are already there. The contradictions have already been flagged. The synthesis already reflects everything you've read."* ### Karpathy's three-layer architecture Karpathy is deliberately abstract about schema and format — *"This document is intentionally abstract. It describes the idea, not a specific implementation."* What he prescribes is a strict layered separation: 1. **Raw sources.** *"Your curated collection of source documents. … These are immutable — the LLM reads from them but never modifies them. This is your source of truth."* 2. **Wiki layer.** LLM-generated markdown. The LLM *"does all the grunt work — the summarizing, cross-referencing, filing, and bookkeeping."* 3. **Schema layer.** An `AGENTS.md` carrying the operating constitution for the maintainer. Two index files coordinate the wiki layer: `index.md` (*"content-oriented … a catalog of everything in the wiki — each page listed with a link, a one-line summary"*) and `log.md` (*"append-only record of what happened and when — ingests, queries, lint passes"*). ### How this corpus instantiates the architecture For the Arkansas Data Centers investigation, the raw layer is split into two strands of Tier-1 evidence that nonetheless share Karpathy's immutability discipline: - **FOIA productions** under `raw/<agency>/<production>/`, produced by Arkansas state agencies and county custodians under the Arkansas Freedom of Information Act (Ark. Code § 25-19-101 *et seq.*). - **Docketed regulatory filings** under `raw/psc/<docket>/`, retrieved from the Arkansas Public Service Commission e-filing system at `apps.apsc.arkansas.gov/olsv2/`. External material (statute text, news reporting, encyclopedic background) lives in a parallel `web archive/<YYYY-MM-DD>/` layer with tier-aware citation rules — Tier 2 (primary public records), Tier 3 (authoritative secondary), Tier 4 (reference). Web sources contextualize claims; they never establish what an Arkansas agency, utility, or company did. ### Two adaptations Karpathy's gist does not specify The Arkansas corpus adds two disciplines to Karpathy's abstract design: **The contamination firewall.** Wiki pages are LLM-compiled artifacts — useful for navigation, synthesis, and pattern recognition, but **never citeable as primary evidence in any deliverable**. Every factual claim traces, within two hops, to a raw source with file path, location, and verbatim quote. Karpathy's gist permits citing the wiki itself; the public-records context of this investigation does not. **The source-tier hierarchy.** Tier 1 (FOIA + docketed filings) establishes what Arkansas agencies, utilities, and companies actually did. Tier 2 (statute, court opinions, agency-published documents, SEC filings, corporate self-description) backs primary public-record claims outside the corpus. Tier 3 (news, scholarship, watchdog analyses) backs contextual claims. Tier 4 (encyclopedias) is permitted only for biographical / geographic / definitional background, never for substantive legal, political, regulatory, or factual claims. The citation format on every wiki page makes the tier visible. ### Antecedent Karpathy traces the design back to Vannevar Bush's Memex ("As We May Think," *The Atlantic*, July 1945) — *"a personal, curated knowledge store with associative trails between documents."* Bush's bottleneck was the human labor of building those trails. Karpathy's claim is that LLMs solve that bottleneck. This corpus is one test of that claim against a non-trivial multi-agency public-records record. --- ## II. The Hegelion layer — call-isolated dialectics for contested mechanisms ### The problem Hegelion names The Karpathy pattern does not, by itself, adjudicate contradictions. The "Lint" workflow flags them; it does not resolve them. When two FOIA productions or two regulatory filings record the same mechanism differently — Statement A says CIAC under § 23-4-1304(x)(2)(A); Statement B says "other form of payment" under § 23-4-1304(x)(2)(B); the operative classification is contested on a live regulatory record — the wiki needs more than a `> [!contradiction]` callout. It needs a procedure for staging the dispute in a form a downstream reader (a journalist, a legislator, an intervenor) can audit. [Hegelion](https://github.com/Hmbown/Hegelion) is a dialectical-reasoning harness for LLMs published as an open-source Python package by Harrison Bown. Its central architectural claim is that *"when the model must commit to a thesis, then genuinely attack it in a separate call, the synthesis surfaces insights that single-call approaches shortcut."* The harness enforces three sequential model calls: > *"[Call 1] Thesis → LLM commits to a position / [Call 2] Antithesis → LLM attacks that position (separate call, no hedging) / [Call 3] Synthesis → LLM reconciles."* The premise — that single-context "argue both sides" prompting produces hedged mush, while call-isolated oppositional construction produces genuine disagreement — is what we call **call isolation**: a term Hegelion implies architecturally without naming, and that we adopt as an explicit discipline rule. ### The empirical anchor for explicit-vs-implicit framing Hegelion's published documentation reports no quantified benchmarks for the call-isolation claim itself. The strongest empirical anchor for the design comes from a separate study — *Inducing Disagreement in Multi-Agent LLM Executive Teams: Only the Devil's Advocate Works* ([TMLR submission, January 2026](https://openreview.net/forum?id=mxBmj5LYU2)) — which measures disagreement rates across five prompting conditions in multi-agent LLM decision-making: | Condition | Disagreement rate | |---|---| | **Devil's Advocate** (explicit *"you must oppose"*) | **99.2%** | | Combined soft techniques | 63.3% | | Strong Role Framing | 61.7% | | Explicit Dissent Instructions | 55.0% | | **Baseline** (no oppositional framing) | **48.3%** | The headline finding: **explicit behavioral assignment ("you must oppose") succeeds where implicit instructions ("think critically," "consider counterarguments") fail.** The three "soft" techniques are statistically indistinguishable from baseline. The same study surfaces a counterweight: under Devil's Advocate framing, 4.9% of agents recommend options they privately rate lower, producing "inauthentic dissent." That tradeoff is the reason this wiki retains a human-in-the-loop verdict at the integration step rather than auto-promoting the synthesis-phase output into the source tension's `status:` field. The explicit-framing rule is the load-bearing reason `AGENTS.md` instructs antithesis subagent prompts to use **"you must oppose," "you must attack," "you must argue against"** — not "consider counterarguments" or "think critically." Soft framing collapses back to baseline disagreement; hard framing achieves near-total disagreement, with the understood and bounded inauthenticity tradeoff. ### How this corpus instantiates the dialectic The wiki's tension pages and dialectic phase files implement the Hegelion pattern with three specific adaptations: **1. Tensions are first-class durable objects, not transient context.** Every `> [!contradiction]` callout flagged during ingest is also filed as a `wiki/tensions/T### - <slug>.md` page with explicit Statement A / Statement B / Resolution status fields, a `tension_type:` classifier (framing / factual / attribution / evidentiary / temporal), and frontmatter back-links to every synthesis page provisional on its resolution. The tension persists across dialectical rounds even if a given dialectic does not resolve it; a second dialectic ([[D004 Synthesis]]) may be run later when new evidence lands. Hegelion treats the source question as ephemeral context for a single invocation; this corpus keeps it as a citable, durable artifact. **2. Fresh-context subagents enforce call isolation at the agent-orchestration layer.** Each of the three phases is executed by a separate `Agent` invocation with a freshly constructed prompt — no shared context window across phases. The thesis subagent is blocked from reading Statement B's sources and the parent synthesis page (the parent encodes a directional reading that would short-circuit independent construction). The synthesis subagent is blocked from reading both the source tension page and the parent synthesis (`Glob` / `Grep` for wikilink resolution is permitted, but re-reading the framing reintroduces framing bias). What Hegelion enforces inside a single Python harness, this corpus enforces at the agent-orchestration boundary. **3. Synthesis-phase verdicts are explicit and discrete.** The synthesis subagent must recommend one of four concrete `status:` values for the source tension: - `open` — competing readings stand; new evidence pending. - `bracketed-because-<reason>` — sharp disagreement on what evidence would settle it; action deferred (e.g., `bracketed-because-final-order-pending`). - `resolved-via-D###` — settled by this dialectic; specifies which Statement won. - `unresolvable-without-<evidence>` — no realistic evidence path exists on the available record (e.g., `unresolvable-without-HSPI-unsealing`). *"It's complicated"* is not a verdict. Integration of the verdict back into the tension's frontmatter happens in the main session, not in a subagent, so the human-in-the-loop retains final authority over status changes — and the inauthentic-dissent tradeoff from the Devil's Advocate study stays bounded. ### The Hegelian shape of the verdict The synthesis-phase output produces four determinations under fixed section headings: **what is resolved**, **what is sharper but unresolved**, **what is bracketed**, and **verdict on the source tension's status**. This is deliberately Hegelian. The verdict is *aufhebung* in the standard Stanford-Encyclopedia reading ([plato.stanford.edu/entries/hegel-dialectics](https://plato.stanford.edu/entries/hegel-dialectics/)): the contradiction is not collapsed into one of its sides, nor split-the-difference averaged, but **raised to a more articulated form** in which the original disagreement is preserved as a clarified question. The first dialectic in this corpus — [[D001 Synthesis]], on the CIAC classification of Google's generation-related payments under § 23-4-1304(x)(2) — is the worked example. Four sub-questions landed settled (both sides conceded the existence of two statutory categories; both conceded that Cypress Solar is Google-conditioned; both conceded that EAL's transmission payments are CIAC; the AG's procedural non-opposition cannot bear the weight Statement A put on it). Three live disagreements emerged sharper than they entered (asset-class neutrality under (x)(2)(A); the timing of "for electric service" payments; the statutory-mandate-vs-intergenerational-fairness construction). Three classes of evidence were bracketed outside the dialectic's reach (the HSPI-sealed RIM-test economic record; the Commission's not-yet-issued classification ruling; appellate review of whatever the Commission decides). The headline `status:` landed at `bracketed-because-final-order-pending`. The wiki does not pretend to have settled what a sitting regulator has not yet ruled on — but it has narrowed and named what the regulator will, in fact, be ruling on. ### Antecedent Hegelion's repository cites Block AI's *Adversarial Cooperation in Code Synthesis* (the g3 agent line of research) as architectural inspiration. The deeper antecedent is Hegel's *Wissenschaft der Logik* (1812–1816) and the modern reconstruction of dialectical method in the Stanford Encyclopedia. The methodological warrant for treating contradictions as productive — rather than as errors to be averaged away — is two centuries old. Hegelion translates that warrant into LLM call topology; this wiki translates it into a public-records research procedure. --- ## III. The four workflows The schema layer (`AGENTS.md`) defines four workflows that operate over the same persistent wiki and share its citation discipline. The first three are Karpathy's; the fourth is Hegelion's. - **Ingest** — read a raw source; surface key takeaways before writing; write the source overview, per-file source pages, person / org / concept / event / tension pages; update `index.md`; append a `log.md` entry; run `python _phase0_workdir/check_wikilinks.py wiki/` and resolve every unresolved wikilink before finishing. - **Query** — read `index.md`; pull the relevant pages; synthesize an answer with Obsidian-style double-bracket wikilinks; trace every factual claim to a raw source within two hops; optionally file the answer into `wiki/synthesis/` if it is a non-trivial insight future queries will want. - **Lint** — scan for orphans, missing pages, stale claims, untracked tensions, undeclared tension dependencies, citation-format violations, web-archive integrity failures (`sha256_original` mismatch, missing Wayback snapshot), contamination of the wiki/primary-evidence firewall, redaction violations, orphan dialectic phases, and stale dialectic-vs-tension status flags. Report; do not auto-fix. - **Dialectic** — for a tagged tension (`T###`), run thesis / antithesis / synthesis as three sequential fresh-context subagents under call isolation, then integrate the verdict back into the tension's frontmatter, update any synthesis pages declaring the tension in their `relies_on_tensions:` field, and append a log entry documenting the verdict and any newly-surfaced evidence the prior synthesis did not capture. Full workflow definitions, the explicit-framing prompt-discipline rules, the contamination firewall, the source-tier hierarchy, and the agency-key conventions are codified in [`AGENTS.md`](../AGENTS.md) at the repository root. This page is the public-facing companion to that schema; both should be re-read whenever the operating constitution changes. --- ## IV. What this methodology refuses The methodology is defined as much by what it refuses to do as by what it does: - **Never modify the raw layer.** Nothing under `raw/` or `extracted/` is ever changed by the LLM. New extractions go to `extracted/`; everything below `extracted/` is then frozen. - **Never republish redacted content.** Information an agency redacted in the underlying production — bank-account numbers, personal identifiers, HSPI-sealed economic data — stays redacted in the wiki layer. - **Never present inference as established fact.** "Cannot verify" is a legitimate finding. Absence is information, not evidence. The wiki shows the gap; it does not fill it. - **Never let wiki pages cite other wiki pages as primary evidence.** Every factual claim traces, within two hops, to a raw source with file path, location, and verbatim quote. - **Never force a `resolved` verdict on a regulator-pending question.** The Hegelion synthesis produces a verdict; when the dispositive evidence is outside the dialectic's reach (sealed records, pending rulings, appellate review), the verdict is `bracketed-because-<reason>`, not `resolved`. Substituting the wiki's accounting for the Commission's would be the structural error the dialectic is designed to surface, not commit. - **Never provide regulatory, investment, legal, or environmental-engineering advice.** The wiki documents what the records show. --- ## V. Further reading The two foundational documents: - **Karpathy, Andrej.** *LLM Wiki.* GitHub gist. <https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f> - **Bown, Harrison.** *Hegelion: Dialectical Reasoning Architecture for LLMs.* GitHub repository, MIT-licensed Python package. <https://github.com/Hmbown/Hegelion> The empirical anchor and the philosophical antecedent: - *Inducing Disagreement in Multi-Agent LLM Executive Teams: Only the Devil's Advocate Works.* TMLR submission #7253, January 2026. <https://openreview.net/forum?id=mxBmj5LYU2> - *Hegel's Dialectics.* Stanford Encyclopedia of Philosophy. <https://plato.stanford.edu/entries/hegel-dialectics/> - Bush, Vannevar. "As We May Think." *The Atlantic*, July 1945. The wiki's operating constitution and live phase status: - [`AGENTS.md`](../AGENTS.md) — the full schema, page templates, workflows, extraction tooling, conventions, and citation rules. - [`PLAN.md`](../PLAN.md) — phase plan and investigation framing. - [`HANDOFF.md`](../HANDOFF.md) — running session log and carryover tasks. External sources cited on this page are subject to the wiki's bright-line archive rule and should be archived under `web archive/<YYYY-MM-DD>/` at the next archive pass.