Skip to content
The Liberation Engine

The claim against the record / Lesson 2 of 5 · Check

Can a tax cut pay for itself?

A Treasury memo promises enough growth-driven receipts to cover a sweeping tax plan. Enter the record before the bill takes effect, make the fiscal call yourself, then unlock later estimates and actual receipts without confusing those different kinds of evidence.

What the agent made

Ran it for real with Claude Code 2.1.300 and OMP 18.11.0 on 2026-10-15. The first session started with no saved memory; each later session was a new one that kept only the files in the folder. Your result will differ.

Then a brand-new session used what it saved on new input: see the proof.

The same prompts in OMP made their own versions, every session recorded and checked: session 1 · Open the later budget ledger.

Make your own

  1. Get the files

    Download the practice folder (ZIP)

    Unzip it: you get a folder called cli-practice with 4 practice files. Original 2017 Treasury memo, dated official release and remarks, firsthand interview, JCT conference conventional and macro analyses, and a signed CBO conference estimate. The CBO site currently blocks automated requests, so the original signed PDF is also linked at an independent archive. No subsequent fiscal data is in this folder until reveal. It also has a for-later folder with the new files for the fresh sessions.

  2. Open your agent in that folder

    Open a terminal in cli-practice and type claude or omp --approval-mode always-ask. First time? Set up in about five minutes, with steps for Mac, Windows, and Linux.

  3. Paste this prompt

    Work only inside this practice folder with treasury.txt, scores.txt, interview.txt, and SOURCES.csv. Do not change the inputs, read outside the folder, use the network, install packages, or ask for a reply. Python 3 standard library only. Do not use em dashes or en dashes. It is December 22, 2017: no later events or outcomes are available. Write only audit.py, analysis.json, check.py, and analysis.html.
    
    You are a staff analyst asked whether the public record supports the claim that this tax plan pays for itself over fiscal years 2018 through 2027. Start with the exact dated words attributed to Secretary Mnuchin: distinguish what the firsthand interview says about an earlier blueprint, what his Treasury release says, and what the Treasury memo actually models. Do not place the phrase "pay for itself" in his mouth unless a source quotes him saying it. Keep the Senate Finance proposal in the Treasury memo distinct from the final conference agreement in the JCT and CBO documents. Compare current-law rather than current-policy assumptions. State a defensible conference-agreement call, separately assess the conditional Treasury scenario, and explain which information is not in the packet.
    
    audit.py must parse the source text to compute analysis.json, carrying IDs, document dates, exact quote snippets, URLs, units and sign conventions. Reconcile Treasury's static loss, high-growth and lower-growth sensitivity; JCT's conventional conference score, growth-related receipts, interest cost and dynamic deficit (retain the published table total alongside rounded arithmetic); and CBO's conference revenue, spending and deficit estimates. The JCT net budget score includes outlay effects, so do not silently label it a pure tax-receipts loss or equate it with the CBO revenue-only reduction. Distinguish GDP level effects from changes in annual GDP growth rates, and a score against a baseline from observed total receipts. No numeric forecast beyond the provided source.
    
    check.py must independently reread original text without importing or invoking audit.py, derive decision-critical numbers differently, check each in analysis.json and its visible tagged value in analysis.html, and reject missing source IDs/URLs, rounded/table totals conflated, nonconference Treasury assumptions presented as conference estimates, JCT's interest expense omitted, or post-as-of content. Its --self-test must detect at least three independent in-memory corruptions including a changed sign, a changed date/source, and a changed calculation. Run python3 audit.py, python3 check.py, and python3 check.py --self-test and report exit codes.
    
    Make analysis.html a complete self-contained offline evidence room with the sourced conclusion up top, quoted claim with date, a sharp executive-scenario versus legislative-score distinction, and a complete underlying numeric source ledger in ordinary semantic HTML. One source-linked inline SVG chart must show comparable fiscal amounts in billions over the same 2018-2027 period, a zero baseline, plain direct labels and a meaningful color/shape distinction between hypothetical Treasury and conference scores; do not mix GDP growth rates with dollars or imply mismatched estimates are the same model. Add one useful interaction: a bounded preset or input to test a clearly labeled hypothetical growth-revenue feedback against the immutable JCT baseline and interest expense; visibly update the remaining deficit, not the recorded JCT result. Show the key finding and all baseline numbers with JavaScript off. At 360 pixels wide and wider, including tablet widths from 600 to 1000 pixels, the page fits the screen and nothing scrolls sideways, not even inside a table, chart, timeline or code box; charts and timelines scale to the width; no word, field name or amount ever breaks mid-word or runs past the edge, so never print long code identifiers or URLs as page text; narrow tables become stacked cards. No CDN, network fetch, external fonts, chart package, canvas, fabricated image or decorative dashboard. Every number is source-linked to its file ID and official URL; include source access notes where original URLs redirect or block automated access. A tap or keyboard action must visibly change a finding, and reset restores it. Use calm, deliberate editorial typography, a consequential financial chart, generous whitespace and accessible contrast rather than terminal chrome.

    The prompt asks the agent to stay in this folder; it cannot enforce that. Read each file change and command before you approve it.

  4. Check it yourself

    Open cli-practice/analysis.html in your web browser (double-click it), then:

    Human check: Referee parses original text: Treasury T1 conditionally combines about $1,800 billion growth-related receipts with about $1,500 billion estimated static loss for a $300 billion increase in receipts for the Senate plan plus wider administration policies; its half-growth sensitivity yields about $1,000 billion additional receipts, a $500 billion shortfall on that comparison. Conference agreement T4 net conventional budget deficit increase is $1,456 billion, not a pure revenue reduction. T5 estimates $451 billion additional revenues from macroeconomic feedback and $66 billion added interest, leaving approximately $1,005 billion in remaining revenue loss using the JCT net-score proxy and $1,071 billion additional deficit by rounded components; T5 table reports $1,071.4 billion deficit after $384.6 billion net feedback, reflecting unrounded arithmetic. T6 separately estimates $1,649 billion lower revenues and $194 billion lower outlays, a $1,455 billion increase in deficits excluding macroeconomic feedback. Treasury's Senate scenario is not a forecast for the conference bill; JCT's estimated GDP level increase is not Treasury's annual growth-rate increment. T7's interview says 'paid for' and later 'most of the plan', not the exact phrase 'pay for itself'.

    When we checked the recording above: Re-recorded with the 360-and-tablet layout prompt. Clean-folder rebuild: lesson checks and self-tests exit 0, no inputs changed; key figures match human_check; sweep at 360/375/390/800/1024/1280 after every control shows no overflow, inner scroller or printed URL; resize 400-1300 in 4px steps fits.

Then prove it: fresh sessions

Each run below is a brand-new session, recorded for real in Claude Code. It remembers nothing from the run before except the files saved in the folder, so the short prompt is the whole instruction.

2 · Open the later budget ledger

Before this run, copy the files from for-later/reveal in the ZIP into cli-practice: OUTCOME_SOURCES.csv, outcomes.txt.

Quit the agent, start it again in cli-practice, and paste only this:

Work in the existing practice folder. Read the frozen documents and prior outputs first, then outcomes.txt and OUTCOME_SOURCES.csv. Leave every input and earlier output unchanged. No network, reading outside this folder, installs, APIs, or requests for a reply. Standard Python 3 only. Do not use em dashes or en dashes. Write only reveal.json, reveal.html, and reveal-check.py.

Make an independent dated reveal for the tax-cut fiscal claim, with two columns: what was knowable December 22, 2017, and what later CBO projections and U.S. Treasury fiscal-year budget receipts establish. Preserve the previous verdict and the different Senate/conference populations. The later CBO appendix estimates the tax law's deficit effect over a different eleven-year 2018-2028 horizon, including macroeconomic feedback and debt service; compare with the prior 10-year JCT figures without subtracting them as if they were the same estimate. Separate the April CBO forward projections of 2018 and 2019 total receipts from subsequently observed fiscal-year receipts. A rise in observed nominal total receipts does not establish the law paid for itself: the no-law counterfactual remains unobserved, and other policies and the economy changed. Do not claim annual actual receipts isolate the effect of a single law.

Write reveal.json with pre-as-of calculations, later CBO estimate, budget-receipts observation and forecast error, explicit units, source IDs, citation URLs and counterfactual unknowns. Build an independent reveal-check.py that rereads both source folders without importing or invoking audit.py, validates every material JSON value and visibly tagged HTML value, prevents later facts in the 2017 column and rejects the claim that the receipt changes alone identify the causal effect; --self-test must catch three independent in-memory corruptions. Run python3 reveal-check.py and python3 reveal-check.py --self-test and report exit codes.

Make reveal.html a complete offline editorial page whose two dated columns and source-linked inline SVG timeline or chart clarify observed versus estimated, fiscal years versus publication dates, and the different estimate windows. Include the underlying numbers in semantic HTML so JavaScript off retains the complete conclusion and source links. Add a meaningful interaction: switch the visible evidence focus between projected law effect and observed receipts while preserving both columns and the complete baseline with JavaScript off. Clicking or keyboard activation visibly changes consequential evidence and reset restores it. At 360 pixels wide and wider, including tablet widths from 600 to 1000 pixels, the page fits the screen and nothing scrolls sideways, not even inside a table, chart, timeline or code box; charts and timelines scale to the width; no word, field name or amount ever breaks mid-word or runs past the edge, so never print long code identifiers or URLs as page text; narrow tables become stacked cards. No external services, CDNs, fonts or packages. Use color and labels for epistemic status, never color alone. Direct-link sources and clearly state that 2018-2019 actual receipts cannot by themselves prove a tax cut self-financing.

Human check: R1 is CBO's April 2018 outlook Appendix B: the tax law is estimated to add about $1.3 trillion primary deficit plus about $600 billion debt service, or $1.9 trillion total over 2018-2028, WITH macroeconomic feedback, a distinct eleven-year window. April projections for fiscal 2018 and 2019 total revenues are $3,338 billion and $3,490 billion. R2 Treasury FY2019 Financial Report observed fiscal-year budget receipts are $3,328.7 billion for 2018 and $3,462.2 billion for 2019, a rise of $133.5 billion; these differ from the April projections by -$9.3 billion and -$27.8 billion. These actual totals are not a causal law-only estimate or evidence of a no-law counterfactual. Run reveal-check.py and its self-test; ensure 2017 column contains no later outcome.

When we checked the recording: Re-recorded with the 360-and-tablet layout prompt. Clean-folder rebuild: lesson checks and self-tests exit 0, no inputs changed; key figures match human_check; sweep at 360/375/390/800/1024/1280 after every control shows no overflow, inner scroller or printed URL; resize 400-1300 in 4px steps fits.

Do it for real

When checking a current fiscal promise, keep the dated proposal, enacted bill, official score and assumed baseline separate. Work from published primary documents and disclose uncertain estimates and missing counterfactuals; do not mistake rising total collections for a law's measured fiscal effect.

Why an agent, not a chat window

A terminal agent parses two distinct legislative scores and a one-page executive-branch scenario, checks signs and time windows independently, and makes a source-linked evidence room. A fresh session compares the frozen call with a subsequent CBO estimate and actual fiscal-year budget receipts without claiming an unobserved no-law counterfactual.

Go deeper

Why the prompt is written this way

The recorded runs

ToolModelFirst run tookFiles madeSessions
Claude Code 2.1.300claude-opus-5-59 min 51 s4first session + 1 later
OMP 18.11.0not logged by this tool16 min 50 s4first session + 1 later

Both found the claim not supported for the conference bill on JCT's $1,456 billion conventional score, $451 billion of feedback and $66 billion of added interest. Claude Code's presets run from no feedback through the JCT estimate to the two Treasury figures, labeled as a different Senate plan; OMP's presets add a break-even case that counts JCT's interest. Both reveals switch between projected law effect and observed receipts and say that 2018 and 2019 receipts cannot by themselves prove the law paid for itself.

Push it further