I'm Zain Dana Harper. I build software you run on your own machine: it checks what an AI model did, shows where the replies in a thread come from, checks your prose line by line, and turns a sentence into a painting, a page of type and a sound from one seed.
I am a natural philosopher and toolmaker.
I came to software after eleven years of production arboriculture. I have programmed on my own for about thirteen years and have no professional programming experience yet. I love trees, archaeology, geology, geography and paleontology. Since September 2026 I have worked as a sole proprietor from Kent, Washington. I am looking for roles in AI evaluation and developer tooling.
Knowledge has no owner, so I publish methods, data and failures openly. People who admit an honest error should have a way back. If I play for any side, it is humanity's.
| Platform | What it does for you | Start |
|---|---|---|
| THE FLYWHEEL | Run AI tasks on any model and keep a record you can recheck offline. | Flywheel |
| ARTICULATE | Check your writing on your own computer, with each finding tied to its line. | Articulate |
| THE COMMONS | See where social media replies come from while you read a thread. | CMMNS |
| THE PLAYGROUND | Describe a piece in words and render it as paint, type, lines, sound and touch. | The Playground |
| BUILDLANG | Write programs whose function types list their side effects, and documents with no TeX install. | BuildLang |
| RESEARCH | Read the papers and essays. | Research |
python -m pip install flywheel-verify
flywheel gate
Flywheel puts any model behind one
OpenAI-compatible endpoint on your machine. flywheel code runs a coding agent
that asks before it writes or runs anything. flywheel check-output compares
the values in an answer with the source that decides them, such as a tax table
or a court calendar. Every step lands on a hash-chained ledger, and a sealed
result can be checked again offline with the Python standard library alone.
flywheel gate seals a built-in task with no model or network and checks the
seal.
The one capability comparison on record shows no measured accuracy gain: verified inference scored 9 of 10 against single-shot 8 of 10, and the 95% interval for the difference, -0.236 to +0.420, includes zero. That benchmark is retired, because its two arms shared their first attempt. Flywheel is source-available under FSL-1.1-MIT.
python -m pip install articulate-writing
articulate check README.md --profile readme --gate
Articulate reads a draft on your
computer and names each writing pattern with the line it sits on: stacked
hedges, marketing words, contrast framing, em dashes. A profile for each kind
of writing decides which findings block, so --gate drops into CI or a
pre-commit hook. It needs no model, account or key. Use it to improve writing
and leave authorship to other evidence: on 183 texts of known origin it flagged
57 of 75 human texts as well as all 84 AI texts.
CMMNS, spoken "commons", is a browser extension for Chrome, Edge, Brave and Firefox. Rest the pointer on a reply on X, YouTube, Reddit, Bluesky or five other networks, and a window beside it shows where the platform places the account, signs of coordination, how the reply argues, and whether a fact-checker has reviewed the claim. Install it from the latest release with the install guide, which checks your download against a signed checksum file. Release 3.10.0 adds right-click page saving and a Python analysis layer for saved threads.
git clone https://github.com/HarperZ9/superframe && cd superframe
npm run make -- "heavy rust coral upper left, fine teal frost on the right" out/first --seed first
The Playground (THEPLAYGRND) is the engine. Superframe, its core, turns a sentence into one seeded recipe and renders it as paint, living type, line drawing, material, sound and a vibration pattern. The same words and seed give the same files byte for byte. Each render also writes a plain-language study of its parts for people and screen readers, and a JSON study for software. It needs Node 24 or newer.
The repository also holds study tools in packages/, the game Low Water in
games/low-water/, and in native/ the C++23 renderer first published as
raw-native.
cargo install buildlang
BuildLang is a compiled language whose function types list side effects such as file, network and C access. It builds native binaries through C and emits HLSL and GLSL shaders. Its document layer sets one source to PDF, SVG and HTML. BuildTeX, released in 1.11.0, adds a checked build: it reads its own PDF back and fails on overfull lines, missing glyphs, unembedded fonts or text out of reading order, and it refuses to start TeX or Lean. A Metamath proof verifier ships with it. The checker meant to replace Lean is still a design.
Release 1.15.0 adds experimental backends that write x86-64 executables with no outside toolchain and WebAssembly binary modules.
Current release of every tool (refreshed daily from GitHub)
| Tool | What it does | Release |
|---|---|---|
| Flywheel | Runs AI tasks on any model and keeps a record you can recheck | v1.9.0 |
| Articulate | Checks prose locally and names each pattern and its line | v0.18.0 |
| CMMNS | Browser extension that shows where social media replies come from | v3.10.0 |
| The Playground | Renders a described piece from one seed in every medium | v0.3.0 |
| raw-native | C++23 renderer that measures a fast effect against its reference | v0.8.0 |
| BuildLang | Compiled language whose function types list their side effects | v1.15.0 |
| Telos | MCP server and CLI: web reading, CI triage, browser control you grant | v0.9.0 |
| Accountable Surface | Lets an agent act only within grants you write | v0.2.0 |
| Forum | Coordinates agent teams with a replayable ledger | v1.17.0 |
| Relay | Permission-checked coding agent for any model endpoint | v0.7.0 |
| Gather | Research intake with provenance; takes files apart and rebuilds them exactly | v2.6.0 |
| Index | Offline repository maps with file and line evidence | v2.16.0 |
| Mneme | Agent memory where every recall can be rechecked | v0.7.0 |
| Canon | One memory and personality record shared across models | v0.7.0 |
| Crucible | Tests falsifiable claims and records MATCH, DRIFT or UNVERIFIABLE | v1.6.0 |
| EMET | Checks that bytes reaching a model still match their source | v1.3.1 |
| Learn | Turns your material into a course and leaves the test to you | v2.3.0 |
| Plexus | Finds and wires compatible tools in an agent toolchain | v0.4.0 |
Verified 14 November 2026: release tags and merged pull requests on the GitHub API; flywheel-verify 1.9.0 and articulate-writing 0.18.0 on PyPI; buildlang 1.15.0 on crates.io; the Flywheel and Articulate figures in each README; the writing list in the site feed.
Who Knew First records nine 2026 incidents in which an AI agent crossed a boundary. In six of them, someone outside the organization that ran the model told the public first. The series follows the questions that raises. Each piece lists its sources and the confidence of each claim. An Anthropic-built model helped compile them, and Anthropic appears in the record, so each piece marks where Anthropic is a party.
| Piece | The question | Published |
|---|---|---|
| Who Pays the Referees | The people who check AI models depend on the labs they check. Which of those terms are public? | 1 October 2026 |
| The Terms for Telling | The party that holds the records also writes the contracts of the people who could tell. Who got heard? | 1 October 2026 |
| Who Kept the Books | In money cases from 1514 to Iran-Contra, what made the first account move? | 8 October 2026 |
| The Maker Is Part of the Story | Three famous stories, read for who funds the work and who edits the record. | 8 October 2026 |
| A Check It Cannot Predict | Does a check that is certain and outside the actor's control work on AI models too? | 8 October 2026 |
The publications page lists the essays, briefings and papers.
Latest writing (refreshed daily from the site feed)
| Date | Piece |
|---|---|
| 2026-11-09 | Findings |
| 2026-10-08 | Who Kept the Books |
| 2026-10-08 | The Maker Is Part of the Story |
| 2026-10-08 | A Check It Cannot Predict |
| 2026-10-02 | A Bullshitter Knows a Bullshitter |
| 2026-10-01 | Who Pays the Referees |
Work accepted upstream
I sent 82 pull requests to 66 outside projects: 41 merged, 20 open, 21 closed without merge (GitHub API, 14 November 2026). Three merged ones are list entries. Merged examples:
- Datasette PR 2815: malformed row URLs return HTTP 400.
- AgentFence PR 261: rule lookup without per-call sorting.
- Mergewarden PR 107: workflow-pinning replay fixtures.
- Free Law Project PR 820: fast-test documentation.
The portfolio lists all 82.
I take scoped work on evaluation design review, harness integration, agent safety review before an audit, and incident review. Each quote comes from the labor, time, compute and tooling the job needs. I have no paid client today and no current sponsors. The evaluation tooling is built to serve embedded evaluation at frontier AI labs, and no pilot or engagement with any lab has begun.
Independence rules
- Income from this work is published with its exact source, API credits included.
- When one source passes 15 percent of income over twelve months, I disclose it and give my findings about that party a second review.
- At 50 percent, I decline new work evaluating that party. A first contract is most of the income by arithmetic, so it is disclosed in full and the decline rule waits for the second.
- One standard for every lab. I build with Anthropic and OpenAI models and publish investigations that name both.
Roles and paths
I'm open to technical and nontechnical roles in AI governance and evaluation, and willing to relocate to London or travel to San Francisco.
| Path | Where I fit | Start here |
|---|---|---|
| Technical and evaluation | Agent and model evaluation, developer tooling, CI, security testing, technical support and documentation. | Engineering path |
| Public service and field | Public service, facilities, parks and grounds, arboriculture, scheduling and safety judgment, from eleven years of field work. | Public-service and field path |
| Education and research | Fellowships, research operations and evidence-centered technical writing. | Research |
- Email: zaindharper@gmail.com
- Site: harperz9.github.io
- LinkedIn: zaindanaharper
- Writing feed: feed.xml
The art on this page is generated by scripts/profile_art.py. Motion stops when your system asks for reduced motion.



