Framework developmentApril 23, 2026

I woke up today and decided I wasn't writing a thesis.

I don't want to argue anything. I want to be right. A methods paper lets me prove myself wrong before anyone has anything else to say about it.


"I don't want to argue anything. I want to be right. A methods paper lets me prove myself wrong before anyone has anything else to say about it."

I woke up today and decided I wasn't writing a thesis.

Not because the work isn't good. Because the container was wrong. A thesis needs a conclusion baked in — you're building toward a defense, which means the research is always following the argument like a little puppy. That's the wrong gravity for what I'm doing. I'm not closing an argument. I'm building instruments. I don't need a puppy, I need a bulldog.

The shift was immediate and it fixed three things at once. The literature board stopped being a reading list that had to prove my argument and became a field map. The stress that had been yanking my entire constellation toward the argument and away from the research I actually wanted to conduct just... evaporated. The format stopped fighting the work I find important and my blood pressure dropped pretty much immediately.

Then I looked at what the work actually needed.

A research program needs a provenance chain in a way a thesis doesn't. A thesis has a committee. A research program has a tool stack, and if the tools don't enforce their own integrity the methodology drifts without anyone catching it. I had already caught one drift — an earlier analysis pipeline had failed because the transcript was in the room during coding, and the pattern-matching converged on narrative coherence instead of metric evidence. I burned that pipeline and rebuilt it with the narrative and the numbers in separate outputs, labeled so you have to choose which mode you're in before you touch the data.

But the parameter problem was still open. The baseline classifier for my new data pipeline has five threshold values that govern how it categorizes model behavior. Change one of those values and you've changed the ruler mid-measurement — everything before that change is now on a different scale. I had a documentation convention for this. Conventions can be skipped. What I needed was a tool that made undocumented parameter changes structurally impossible.

So now there's a signing tool. The only way to produce a valid parameter configuration is through a UI that stamps it with a timestamp, an operator ID, and a cryptographic signature. The baseline classifier recomputes that signature on load. If they don't match, the tool refuses to run. You can't hand-edit the config and feed it to the classifier — the signature catches it. Every session derived under a given parameter set carries a human-readable code that encodes exactly which thresholds were active. Two sessions with different codes cannot be aggregated without the system flagging it. The parameter set is now signed and the provenance chain is enforced at the tool level rather than the discipline level.

That was the first bump.

The second one was cheaper. I had a field in the schema for investigator prompt texture — a way of classifying whether the person running the instrument was writing in formal researcher-register or something more degraded and emotionally loaded. The field existed. The possible values existed. What didn't exist was a written coding anchor: a rule that told a coder exactly how to assign a value, including edge cases. Without that anchor, two coders working from the same session would make different judgment calls and inter-rater reliability work would be built on ambiguous ground. The fix was documentation, not architecture. I wrote the anchor, locked it, and logged the bump. No new fields. No tool changes. Just a ruler that was always implied, now written down.

Two bumps. One day. Both forced by the work being honest about what it needed, and in retrospect, me being honest about what I needed.


Atlas Heritage Systems · KC Hoye, PI · April 2026