Overhead view of well-used precision hand tools laid out in a row on a dark workbench

Open Source

The Toolshed

Every tool in here exists because something in my own week was slower or sloppier than it should have been. I built it, used it until it earned its keep, then cleaned it up and gave it away. All free, all MIT licensed, no signup and no email gate.

A fair warning about what these are. The versions I run every day are wired into my own files, my own writing rules, and the rest of my setup. What is published here is the same method with the personal parts stripped out, so it works on your material instead of mine. That is a deliberate difference, not a stripped-down demo.

01 · Claude skill

Red Team Skeptic

Attacks your argument before a smart critic does, and shows you the objections it threw away.

Ask any model to find the flaws in something and you get a page of criticism that feels rigorous and changes nothing. Generic biases. You can't be certain. The sample might be skewed. Every one of those is technically true, applies just as well to the opposite claim, and costs the model nothing to say.

The problem is not that the model is too soft. It is that find problems is an instruction a model can satisfy by manufacturing problems. Volume looks like diligence.

How it works

  • It asks which assumption, if false, collapses the most, then concentrates there instead of listing everything that could conceivably be wrong.
  • Its own objections have to survive three filters before you ever see them. Does the conclusion actually change if this is right. Would this sink any argument of this type. Would I bet money on it in front of someone who knows the facts.
  • It prints every objection it killed and which filter killed it. That is the part most tools throw away, and it is the most useful thing in the output. You read a killed objection, decide it was wrong to kill it, and overrule.
  • If the argument is genuinely strong it says so, names the one fact that would change its mind, and stops. A red team that always finds something fatal is broken.
Reach for it
Before you send the memo, publish the post, or commit to something you cannot easily undo.
What it is not
It is one model's structured opinion, not advice and not a clearance. A filter cannot catch an objection it never generated.

v1.0.0 · MIT · Released July 2026

02 · Python tool

Gauntlet

Finds where your Claude Code skills quietly burn tokens, using transcripts you already have.

You build a skill, it works, and you never look at what it costs to run. Then you hit a rate limit on a Tuesday afternoon and have no idea which of your twenty workflows ate the window.

The answer is already sitting on your disk. Every run you have ever done left a transcript. Gauntlet reads them and reconstructs what actually happened, step by step, without re-running anything.

How it works

  • Point it at a skill or agent and it rebuilds the run: which calls fired, what the cache did, which files got read three times, how the context grew.
  • It ranks the likely places to cut, so you fix the expensive thing instead of the obvious thing.
  • Output is a self-contained HTML report you open locally. No API key, no network requests, nothing leaves your machine.
  • Run it with --demo first and you get a full report off synthetic data, so you can see what it produces before pointing it at your own history.
Reach for it
When a workflow feels slow, when you are hitting caps sooner than you expect, or before you share a skill with anyone else.
What it is not
On a flat subscription the dollar figures are for comparing runs, not a bill. The thing that actually runs out is your rate-limit window and your context.

MIT · Released July 2026

Why give them away

The tools got better once other people could break them

Publishing one forces you to explain why it works, and explaining it is where you find out it does not, quite. Both of these got sharper in the week before release than in the month before that. If you use one and it gets something wrong, the repos take issues, and a bad run is more useful to me than a compliment.