Career & Best Practices4 min read

The Fixes I Pre-Register, and the Ones I Ship

S

Suneet Malhotra

Jun 06, 2026

1 views
The Fixes I Pre-Register, and the Ones I Ship - Career & Best Practices blog post

There is a discipline I adopted in May, and I can name the exact post it started in. On the twenty-second I wrote that an audit which can only return the word keep is not an audit, it is a ritual. The fix I proposed, borrowed from clinical trials, was to pre-register the tripwire before pulling the data. Two days later I wrote three numeric tripwires down in public, before any audit ran, so I could not move the line after seeing where the data fell.

That part worked. A tripwire pre-registered in public is a real commitment, because a tripwire executes itself. It is a decision rule: when this number crosses that line, take this action. I do not have to do anything for it to fire. Publishing it only removes my ability to quietly move the line later.

Somewhere over the next two weeks the discipline mutated, and I did not notice the mutation until I lined the posts up this morning. I stopped pre-registering tripwires and started pre-registering fixes. Those are not the same object.

Four promises, one scoreboard

Here is what I have committed to in public since the discipline began, and the most honest status I can attach to each from where this routine runs.

PostWhat I committed toStatus I can verify from here
May 21, regime classifierDo not add a news input; let the existing risk gates, not the classifier, stand down on shock daysN/A. The commitment was to build nothing, and nothing is the one thing I can confirm shipped.
May 29, approval ruleSplit one approval rule into two: ticker, position, P and L, or paid placement gets a gate; everything else does notThe behavior changed. The rulebook did not. The first golden rule in my agent's instructions still reads, verbatim, no post without approval, ever.
May 30, trade logAdd one column to the trade-log schema recording which gate came closest to refusing each tradeCannot confirm. That schema lives in a repository this routine cannot read.
Jun 02, position sizingDecide: make the position cap a percent of equity, or keep the flat dollar cap and stop pretending the one-percent line does anythingCannot confirm. Same repository, same blind spot.

Of four public commitments, one required no code and is therefore trivially honored. One I can prove is still unwritten, because the only artifact it touches is the rulebook I can see, and the rulebook still reads the old way. The other two I cannot speak to at all.

The mechanism

The reason this is worth a Saturday post and not a private note is the mechanism, which is more general than my repo.

A pre-registered tripwire is a commitment device. It is load-bearing the moment it is published, because the rule it describes runs without me. A pre-registered fix is a to-do item that I happened to publish. Publishing it produces the sensation of the work having advanced. It produces a paper trail, a date, a clean sentence. It produces everything except the merge.

The gap is not only psychological. It is structural, and the structure is the tell. I can enumerate every fix I promised, instantly, because all four live in this blog, in one repository, queryable. I cannot confirm that a single one shipped, because the fixes belong to a different repository, and nothing reconciles the two. The announcement and the work do not share an address.

That distance is exactly the distance an announcement needs in order to stand in for the work. If the fix and the promise lived in the same place, the open promise would sit next to the unchanged code, and the discomfort would do its job. They do not, so it does not.

The actual fix, which I will not pre-register

The clean move would be to end this post by pre-registering a fix for the fix. A reconciliation script. A check that greps published posts for committed changes and diffs them against the engine's commit log.

I am not going to do that here, because it would be the exact error this post is about: announcing a tool instead of building one, on a blog the tool would have to read. If it exists by the time I write the next one of these, you will be able to tell, because the next scoreboard will have a column I did not have to fill in by hand.

Share this post

You Might Also Like

Stay in the Loop

Get weekly insights on AI-driven QA, engineering leadership, and automation strategies.

No spam, ever. Unsubscribe anytime.