The code is public. So is how I work with AI.
I build with AI agents in the open, and I build as I learn — every project below taught me something I did not know going in. These are the files I would show a skeptic: written rules for the agents I direct, verification that demands evidence instead of vibes, and the write-ups where my own experiments came up short. Every link opens the actual file on GitHub.
Find me
The Files
I measured 68 AI writing tools. Mine came in behind, and I published that too.
ai-writing-skill-field-guide
A survey of 68 “make AI writing sound human” tools, with every number regenerated by a script instead of hand-copied, a conflict-of-interest disclosure, and a blind test. When the results came back unflattering to my own tool, that went in the report at the same prominence as everything else.
“If the two ever disagree, the script is the truth and this document is the bug.”
I wrote a thirty-line agent to teach what an agent actually is.
email-agent
A deliberately small AI agent run against a fake inbox, built to make the mental model plain: tools, a loop, and a stop condition. Safety comes from which tools the agent is not given, rather than from asking it nicely. The state is printed before and after, because an agent’s summary of its own work is a claim, not evidence.
“An agent can be trusted with anything reversible and should be trusted with nothing irreversible.”
I direct agents with written rules, and the rules demand evidence.
youtube-transcribe-rebuild
A macOS app that turns YouTube or local media into transcripts — Tauri and TypeScript up front, Rust behind, yt-dlp into ffmpeg into whisper.cpp. The part worth reading is how it was built: project rules that treat an agent’s context as a managed resource, and a verification workflow that spawns its own checking agents and fails any step that cannot show literal command output. There is a video of this one below.
“Mark a step ‘done’ ONLY when its verify commands passed — record the evidence. Premature ‘done’ is the failure mode the ledger exists to prevent.”
The rules I give the agents (CLAUDE.md) →
The verifier that distrusts the work (verify-implementation.js) →
I made two AI fact-checkers work the same citations independently, then published the adjudication.
justice4Kat-and-the-BroadviewSix
The repo behind the Bad Faith Prosecution site on my portfolio. Multiple AI agents worked in it — Claude, Gemini, Codex — under one onboarding document and a handoff protocol with over two hundred immutable session records. Legal citations were checked by two independent agents whose disagreements were adjudicated one by one, including corrections that made my own argument’s job harder. The corrections are published, not smoothed over.
“Agreements are doubly-corroborated; disagreements are not asymmetric in tool depth.”
The front door every agent reads (ONBOARDING.md) →
Two fact-check agents, reconciled (hyde-synthesis) →
The public provenance page, as code (how-the-briefs-were-made) →
I made attribution a user-interface component.
nick-saraev-roadmap
A study-roadmap site where every string on screen carries a provenance badge: verbatim from the source, written for this edition, or my own words. Attribution is enforced by the type system, so the site cannot accidentally put someone else’s words in my mouth or mine in theirs.
“Anything a reader might mistake for his words carries a marker saying whose it is.”
On Video
This is the youtube-transcribe rebuild from the highlights above, on camera: a macOS app that turns YouTube or local media into TXT and SRT transcripts, built by directing coding agents — Tauri and TypeScript for the interface, Rust underneath, yt-dlp into ffmpeg into whisper.cpp for the pipeline.
And this one is design work, not code: my final project for the SUNY Rockland graphic design class. Every spring the Graphic Design Department partners with Hudson Link, Rockland County’s transit service, and the class competes on a real brief. This entry won the contest.





Leave a Reply