# 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.