Avatar LogoJeff Thomas

Prodacity 2026: Dolly, the Living Harness, and 79 Commits in Three Days

written byJeff Thomas

ARTIFICIAL INTELLIGENCE|CONFERENCE|GROWTH|TRAVEL

Published: August 29, 2026

48 min read |
Prodacity 2026: Dolly, the Living Harness, and 79 Commits in Three Days

Photo by: Rise8

Introduction

Adam Furtado came back from the last break of day one with news that had nothing to do with software. Dolly Parton had died that afternoon. We were three blocks off Broadway in a converted music hall, in a room full of defense-tech people who had spent the day arguing about acquisition strategy, and the man running the show told us the music in the next break would all be Dolly. It was.

That was my first day in Nashville. I had never been.

Conference badge on a Prodacity lanyard reading Jeff Thomas, Director of Technology, Rise8, over the word UNCHARTED.
The badge for the week. Uncharted: navigate the mission.

The city does not let you forget what it is. Walk Broadway on a weekday afternoon and there is a band playing in every bar, four floors of them in some buildings, no cover, someone good enough to be headlining somewhere else grinding through a set for tips at two in the afternoon. General Stephen Whiting, the commander of U.S. Space Command, opened his keynote by calling Nashville "the world's singular epicenter for defense-focused software development, country music, Luke Combs, honky tonk bars, and armies of bachelorette parties." He was not wrong about any of the five. By midweek, pointing at the Category 10 sign had become its own small trend among the Rise8 crowd, and I was not going to be the one who did not.

Selfie on Broadway in Nashville, pointing up at the neon Category 10 sign on a brick building.
Category 10, the venue, and by this point a running joke. Bryon posted the pointing shot first, JJ Homan posted his, and I am not too proud to join a trend.

The live music at both happy hours came from Operation Encore, a nonprofit that gets veterans and transitioning service members onto stages in the music business. That detail says more about how Rise8 runs an event than any agenda item does.

I also had dinner with Steve, who I grew up with in Conshohocken, Pennsylvania, which nobody from there has ever called anything but Conshy. Ten years since we had been in the same room. We picked it back up mid-sentence, the way you do when the gap turns out to have been logistical rather than real. Good night. Long one.

So the trip was already worth taking. But I want to write about what happened after, because Prodacity is the first conference in a while that changed what is in my repositories rather than what is in my notebook. Day three was a full-day workshop with Russ Miles called The Living Harness. I got home, ran his assessment against a website I have been writing on since December 2022, and did not much like the answer. Three days and seventy-nine commits later, that site is a different piece of software.

This post runs long, so the short version goes first.

Takeaways and lessons learned

Rise8 hands out a field guide at registration with a page of space per talk, and mine came home with one line each. Here is the whole agenda compressed to the lesson every speaker actually left behind, so you can take what is useful and stop reading here if that is all you came for.

  • Bryon Kroger, on what to optimize: the factory, the platform and the tool chain were never the point, so work backwards from mission impact to outcomes to outputs, and be careful about over-celebrating the enabling outcomes along the way.
  • General Stephen Whiting, on what the mission needs: space superiority is decision superiority, and decision superiority is a processing-speed problem you cannot solve by asking a well-trained operator to fuse three screens in their head.
  • Shannon Pallone, on incentives: people optimize whatever you grade them on, so if you want integration you have to reward a team for de-optimizing its own program in favor of the system, and you have to pay for that in the contract.
  • Josh Marcuse, on adoption: the hard part of a 54-day launch was never the model, it was federating the data and learning to trust it, and he would spend longer on data preparation if he ran it again.
  • Suzette Kent, on the whole team: technology, security, policy and people all have to be on the field at the same time, and the budget line that always gets cut is the one that decides whether any of it sticks.
  • Peter Dixon, on who fixes it: the funding, the talent and the capability are already in place, and the only missing piece is the last mile into production, which the change-makers inside the building have to carry themselves.
  • Mina Hsiang, on iteration: iterate on the policy as well as the software, because perfectly executing the letter of a requirement is a common way to fail its spirit.
  • Kent Beck, on futures: every feature you ship burns optionality, so build the pause between features into the work, and remember that no measure of effort or output is a measure of mission however easy it is to count.
  • Tom Roderick, Bharat Patel and Jazmin Furtado, on pilots: define what you will measure before you define the solution, keep the pilot narrow enough to finish, and give people organizational cover so a pilot is allowed to fail.
  • Patti Fletcher, on identity: nothing has reset until the capital and the calendar have reset, and divesting from what no longer matters is harder and more important than investing in what does.
  • Dan Ward, on uncertainty: study your failures deliberately, build several scenarios instead of one forecast, and collect your signals from outside your own domain.
  • Steve Pereira, on flow: the point of mapping is the shared model it builds, and the map itself can be thrown away, but the real risk now is everyone accelerating individually in a different direction.
  • Paul Rayner, on domain: the knowledge you need is tacit, invisible and fragmented across silos, so get the right people in a room and visualize the process before anyone writes a specification.
  • Palantir's forward deployed engineers, on architecture: use a model only where judgment is genuinely required, give it the smallest possible scope, evaluate every node independently, and never let it write to production without a human click.
  • Russ Miles, on environments: AI amplifies whatever practice you already have, accountability cannot be handed to something that has no experience of consequence, and when the output is wrong the fix is usually in the environment and not in the prompt.
  • Nicky Pike and Mike Gehard, on constraints: making the flight instant does nothing if the security line is unchanged, and any inconsistency you feed the machine comes back to you amplified.
  • Jonathan Mostowski, on contracts: whatever is written on the contract is what you are actually buying, and every incentive you attach will produce a behavior you did not ask for.
  • Bryan Guinn, on transition: before standing up another authority or another prototype, check whether today's requirement derives from, extends or completes work the government already funded and already competed.
  • Lori Ann Rissler, Ryan Connell and Dolores Kuchina-Musina, on acquisition: you cannot buy outcomes at output-level prices, and much of what slows a contracting shop down turns out to be local policy rather than regulation, which means somebody is allowed to delete it.
  • Chris Hughes, on security: code volume and exploitation speed are both going vertical while assessment stays periodic and manual, and a security function that defaults to blocking has become the larger risk.
  • Lloyd Evans, Charles Nwatu and Mario Lunato, on compliance: architect so that being compliant is the byproduct of how you already work, then check honestly whether you can fix findings at the rate a model can now find them.
  • Bryon Kroger, on closing: almost none of the problems are your fault and every one of them is now your responsibility, and most of us need reminding far more than we need teaching.

The pattern across all of them is the same, and it is why the last day landed the way it did. Every speaker was describing a constraint that had already moved, and a set of habits still aimed at where it used to be. The rest of this post is how each of them got there, and what I did about it when I got home.

A large hand-drawn illustrated map titled The Journey to Mission Outcomes in Production, showing the conference themes as islands, ships and mountains.
The whole conference, graphically recorded as a journey map. Mission mapping to the left, push to production on the right, and a lot of weather in between.

Day one: mission before technology

Bryon Kroger opened by taking apart the thing he is best known for building. He co-founded Kessel Run, coined "software factory," and spent the first fifteen minutes explaining why both names went wrong. He borrowed Warren Buffett's line about how good ideas decay: "First come the innovators, then come the imitators, then come the idiots, whose avarice undermines the very innovations they're trying to exploit." Then he put the point plainly.

No software factory was ever the thing. No platform, no tool chain was ever the thing. Continuous delivery of valuable software that users love into production is the thing.

Bryon Kroger

The frame for the whole conference followed: work backwards from mission impact to outcomes to outputs, never forwards from the resources you were handed. An outcome is a change in user or system behavior that improves the mission value stream. A feature is not an outcome. A platform is not an outcome. Both are bets you are making on the way to one.

General Whiting followed with what a combatant command actually needs from the people who write its code. He walked through five elements of victory, then landed on the part that requires software: "Space superiority is at its core decision superiority married with decisive effects. And we cannot make decisions at instant speed without your software." His command tracks close to fifty thousand objects in orbit, and his operators fuse the picture across several common operational pictures in their heads, which is a sentence that should not be possible. He also said something that got quiet nods from the security people in the room: "Cyber defense is space defense."

Prodacity main stage, a uniformed general speaking with his slide projected behind him.
General Stephen Whiting on why space superiority is a processing-speed problem.

Shannon Pallone, the program acquisition executive for battle management, command, control and communications, sat for a fireside chat wearing a shirt that read "without ground systems, it's all just space junk." She was blunt about what integration failure costs an operator: "If an operator has to log into 16 screens to do a job, then I think we fail them." My favorite thing she said was smaller and stranger. Asked what she loves about the work, she said she does not have a charge code. "I really recommend mission as a charge code."

Josh Marcuse from Google gave the numbers on Gemini for Government, which went from directive to live in fifty-four days and now has more than 1.7 million users across the department. He argued the Department of War has gone from a late-majority technology culture in 2016 to an early-majority one on the edge of early adoption, and that it is now the largest deployment of its kind anywhere by a wide margin. Then he closed on people rather than platforms.

All of these changes that I'm describing were made by people whose courage was far greater than their anxiety.

Josh Marcuse

He told a story about a professor who spends the first hour at the beach inflating his kids' pool toys, and how by evening every one of them is sagging. His term for what leaders owe each other is "pump the bunny." At the first Kessel Run offsite in 2018 there was an inflatable bunny on every table.

Suzette Kent, the fourth federal CIO of the United States, used a football analogy and made it earn its place. Technology, security, policy, and people all have to be on the field at the same time, and the last one is where the money never goes. She pointed out that the federal government has historically spent under five hundred dollars per person per year on reskilling in the technology workforce. A survey of a thousand federal IT leaders released that Monday found ninety-one percent said the hardest part of adopting AI was changing the workflow, not standing up the tool. Her line on compliance stuck with me, because I work in it: "Compliance as a checklist is not generally helpful to the mission."

Peter Dixon gave the most uncomfortable talk of the day, which is a compliment. He walked through why a hundred billion dollars of venture capital flowing into defense tech is not automatically good news, why the loss of seventeen thousand small and medium businesses from the defense industrial base matters more than the headlines, and what the primes did with their R&D and M&A budgets during the global war on terror. He ended without a hedge.

You are the cavalry. There is nobody else coming to save us.

Peter Dixon

Mina Hsiang, who ran the U.S. Digital Service across three administrations, made the case that iteration has to reach the policy, not just the software. She walked through the FAFSA failure of late 2023, where a simplification law collided with the rules governing IRS data and multiplied the system's complexity by an order of magnitude. Everyone understood the spirit of the law. The letter of it made the thing unbuildable. Her warning about speed was the sharpest version of the day's thesis:

AI allows us to iterate so fast that if not everyone is super clear on where you're trying to get to, you will iterate yourself into oblivion.

Mina Hsiang

Then Kent Beck took the stage, and it was the best talk of the day for the second event running.

He calls the model "the genie" as a deliberate corrective, a reminder that it grants your wishes rather than your intentions. He opened by calling a foul on the industry's favorite claim. Programs that come out of augmented development, he said, are "plausible. Genie's really good at plausible. But actually working? No." He has been writing code with these tools daily for eighteen months and his GitHub is full of project, project-2, project-3, because he keeps hitting the wall where he cannot fix one bug without breaking two others.

His diagram is the one I keep coming back to. Every feature you ship burns some of your futures, the options you have for what to build next. Ship features continuously without stopping and you drive to zero, where nothing can change without breaking something else. It used to take a hundred people ten years to reach that state. He can now do it alone in a week.

The fix is the pause between features. He told the story about Pablo Casals, asked whether all those sixteenth notes tire him out, answering "I rest between the notes." Beck then admitted the story is invented and told it anyway because it is too good not to. His kitchen version is better: "You can't wipe the knife while you're cutting. You have to cut and wipe the knife."

He closed on measurement, and this is the part that reframed the rest of the conference for me:

Kent Beck alone on the Prodacity stage, his title slide projected beside him.
Kent Beck, on features and futures. The best talk of the day for the second event running.

Anything which is a measure of effort or a measure of output is by definition not a measure of mission.

Kent Beck

Two hundred thousand generated lines of code is a measure of effort. It is also the easiest thing in the world to count, which is exactly why we count it. Measure too early and Goodhart's law eats you. Measure too late and nobody can attribute their contribution. He does not have a clean answer, and he said so.

The AI leadership panel that followed, hosted by Courtney Barno of Anthropic with Tom Roderick, Bharat Patel, and Jazmin Furtado, spent its time on the gap between access and adoption. Roderick's one-liner was the one I wrote down: "AI is adopted, but we no longer call it AI. It's now just something that's fundamental and part of what you do in your day-to-day." Patel, who was the Army's technical lead on Project Maven and stood up the Army's first AI program, described the real work as "bureaucratic jujitsu," and made the point that actual machine learning is hard in ways generative AI is not: you have to understand the data, the use cases, the test and evaluation, the risk frameworks, and the deployment path.

Patti Fletcher closed the day on what has to change inside the leader rather than the system. She built the talk around a study of fifty people through career change, in which ninety-two percent had adopted a role model's identity without noticing and could not see that it had stopped working. Then she pointed at the budget.

Your identity is not what you say you believe and it's not what you say you value. It's what you fund.

Patti Fletcher

Her evidence was hard to argue with. GAO data across 2016, 2019, 2023 and again in January of this year shows eighty cents of every federal IT dollar goes to keeping old systems alive. McKinsey tracked sixteen hundred companies over twenty-five years and found last year's budget predicts this year's budget with ninety-eight percent accuracy, no matter what the strategy deck says. Her answer to "I don't feel ready" was four words: "Ready is not a feeling. It's a decision."

Dolly, on the same subject, and the line that was going around the room all week:

Selfie outside Dolly Parton's Songteller Hotel in Nashville.
Dolly Parton's Songteller Hotel. The city spent the week quoting her, and so did the conference.

Find out who you are and do it on purpose.

Dolly Parton

Day two: the tactics

Dan Ward opened day two by juggling on stage, which turned out to be load-bearing.

Dan Ward on stage in front of a slide showing juggling pins labeled with his two-word units.
Dan Ward, mid-talk. Study failure. Build scenarios. Collect signals. He juggled to make the point land.

He came to talk about a book from 1894. Octave Chanute's Progress in Flying Machines, which is where Ward's own book LIFT starts, catalogs four hundred years of failed attempts at flight, laid side by side and compared, and it is the book the Wright siblings were handed in 1899 when they asked what to read. Chanute wrote it for three reasons: to find out whether flight was even theoretically possible, to identify the dead ends, and to find the promising paths. He concluded you should stop gluing feathers to wings, that flapping was a dead end despite being the only working model anyone had ever observed, and that curved wings produce more lift than flat ones. That last one should have been settled physics. It was not, partly because German and French experimenters would not share data with each other.

Ward's advice comes in two-word units, and he is deliberate about that. Study failure. Build scenarios. Collect signals. The middle one comes from strategic foresight, where a scenario is an imagined story about a future, neither a prediction nor a preference, and he walked the room through growth, constraint, collapse, and transformation as archetypes you can combine. His correction to the grammar is the thing I keep repeating:

There is no the future. There is only the futures.

Dan Ward

At the end of the talk he pointed out that he had been afraid, on stage, not that he would drop a ball but that he would forget to drop one. Failure is only part of the story, and juggling two balls perfectly fools nobody.

Kroger came back to introduce what he is calling the outcome factory, and led with the number the whole industry knows and ignores: "87% of large government IT projects fail. Not struggle, not over budget. They fail." His diagnosis is that the entire system rewards activities and outputs. Contracts buy hours, one way or another, even the firm-fixed-price ones that are really firm fixed price level of effort. Authorization risk lands on the government. Adoption lands on the government. "We're paying vendors and hoping." He announced Rise8 will publish a performance guarantee in September and offered the draft statement of work to anyone in government who wants it, with a challenge attached: ask your vendor whether they will guarantee it, and if the answer is no, they were overselling the other four things too.

A speaker in a pink jacket gesturing at a slide headed What Good Looks Like, listing outcome-based accountability, speed to mission value and a performance guarantee.
The acquisition block, on what good looks like when you buy outcomes instead of outputs.

His answer to skeptics was a bicycle. Hand someone a bicycle who has never ridden one, watch them fall off four hundred times, and listen to them conclude that bicycles do not work.

Steve Pereira, who wrote Flow Engineering with Andrew Davis, followed on value stream mapping, and his opening line is the one that gets mapping past the people who have been burned by it:

If you map, you can throw the map away and still gain almost all of the benefit.

Steve Pereira

The value is the shared mental model, not the artifact, and the artifact is usually the thing that goes stale and becomes a liability. He also named the failure mode nobody at the conference had said out loud yet. Everyone now has a personal fleet of agents, each one reinforcing its owner's assumptions, each producing artifacts that have to be reconciled with everyone else's silo. "AI is making it possible for us to go faster alone than ever before, and together it's going to get harder and harder." He compared it to the early days of DevOps, when what the two silos actually needed was to have lunch together.

Paul Rayner made the case for EventStorming by way of Fred Brooks, who wrote that one of the most striking developments in twentieth-century design was "the divorce of the designer from both the implementer and the user." Rayner's framing of why domain knowledge is so hard to extract is the cleanest I have heard: "Knowledge is here, but it's tacit, invisible, and fragmented." No single person knows the whole business process. It evolved; nobody designed it. He warmed the room up by having them event-storm Cinderella, then showed time-lapses of real teams going from an empty wall to a mapped process with hot spots, a glossary, swim lanes, and a list of what they do not know. His closing plea was aimed straight at what large language models have done to internal documentation: "For goodness sake, draw a diagram. Don't give me a 20-page PRD and expect me to read it. All I'm going to do is throw it back into the LLM and ask it to summarize it."

The mapping panel that followed, hosted by Rob Monroe, was set up as a deliberate disagreement between Pereira and Rayner and mostly refused to disagree. The useful tension was about where each technique earns its place. Pereira wants a target outcome first so he can filter what to map, because "there is one highest priority fire" and individual contributors go blind to it. Rayner meets teams where they are and maps hot spots, because pain in one part of a process is usually a symptom from somewhere upstream: "somebody upstream is burning the toast and you've got a bunch of people downstream scraping the burnt bits off."

Palantir's forward deployed engineers gave the most concrete talk of the week, walking through an IRS correspondence workflow processing ten thousand pieces a day against a thousand-page rulebook. Their architecture replaces a single agent with a decision tree of deterministic nodes and narrowly scoped model nodes, each independently evaluated, each using the cheapest model that clears the accuracy bar. The agent never writes to production; it stages a recommendation with full lineage and an examiner clicks. Two lines from it went in my notebook. "Only use LLMs where they're actually needed. Don't use an LLM for deterministic logic." And the one I have quoted five times since:

A slide comparing a naive build against a considered one across rules, models, legacy systems, writeback, quality, failure handling and the human.
The most concrete slide of the week: naive build on the left, theirs on the right, row by row, ending with the human.

Quality is not a vibe check.

Palantir technical team lead

They closed with the difference between a demo and a system: "The demo was never the hard part. AI in the government space isn't judged in some sandbox. It's judged by the worst case scenario and at the highest scale."

Then Russ Miles walked out in a cowboy hat he had been talked into buying, apologized for having a forty-five minute talk and twenty-five minutes to give it, and broke the schedule anyway. The emcee's introduction to the next session began: "Favorite talk right there."

Russ Miles on stage in front of his title slide, The Leader's Guide to AI in Production.
Russ Miles, day two, in the cowboy hat he had been talked into buying. The workshop came the day after.

He opened with a question he asks the leaders he coaches. It is eighteen months from now, seventy to eighty percent of your code is generated, nobody understands what it does anymore, you have had turnover because nobody feels connected to it, but you have agents. What worries you most? The answers come back the same every time: nobody is accountable, agency is disappearing, and there is no way to know whether any of it is good.

AI is an amplifier. If you're good at software engineering and you've got great practices, you're going to be good at software engineering when there are agents in the room. If you are terrible at it and hiding, you will be worse.

Russ Miles

He gave two new kinds of debt to go with the one we already have. Technical debt is familiar, and agents are unusually good at paying it down. Cognitive debt is "we don't know how it works anymore." Intent debt is "we don't know why we've got what we've got," and it is the worse of the two because it is invisible until someone needs to change something.

His argument for why accountability cannot move is a true story about the man who scaled the wall of Windsor Castle with a crossbow intending to kill the Queen, having planned it in detail with a chatbot that told him he was a genius the whole way. The police arrested him. Then they asked what to do about the agent, and the chief inspector's answer is the sentence Russ built two books around: "We cannot do anything about the agent's responses. If those responses had come from a human, we would have an accomplice."

He used to work on Formula One cars, which gave him the line about the mandate every leader gets from the board, which is simply to go faster. "Brakes exist to help you go faster." And he closed on a Dolly reference, because it was that kind of week: building a habitat is an act of compassion and empathy, not only for the people, but for the machines that cannot see what you can.

Nicky Pike of Coder and Mike Gehard of Rise8 followed with the best analogy of the conference. AI made code generation free, so the constraint moved.

AI has brought us a teleporter. We can get from New York to Tokyo almost instantly now. But we still have the same TSA lines, the same baggage checks. And when flying becomes free, everybody wants to fly.

Nicky Pike

GitHub is struggling under the volume. The outer loop never got fixed. Gehard's position is that inside-out test-driven development is no longer where the leverage is, and that executable acceptance tests written at the boundary of the system are, because they let you hand the middle to the machine and still know when you can ship: "It's not about generating code anymore. That's an output." Pike told a story about a company that brought in AI, watched it start leaking secrets within a month, and discovered on inspection that they had fifty-seven different secrets managers because developers had always been allowed to pick their own. The AI did not create that. It found it.

The acquisition block after lunch was three talks and a panel, and it was better than that description sounds. Jonathan Mostowski opened with a thesis that landed hard in a room full of program managers:

If culture eats strategy for breakfast, then compliance eats mission.

Jonathan Mostowski

He walked through why earned value management reports stay green until the quarter before delivery and then go red, why fixed-price-per-iteration works when you pay for the process rather than the story points, and what happens to any measure the moment it becomes a target. He has two stories for that. One is the Cobra Effect in colonial India, where a bounty on dead cobras produced cobra farms and, when the program was canceled, a larger cobra problem than before. The other is his pug Jewel, who learned that ringing the bell by the door summoned him from anywhere in the house, and who kept ringing it long after she stopped needing to go outside. He could not untrain her. The bell went in the trash. His summary of incentive design is three words long: "A fine is a price."

Bryan Guinn made the case for SBIR Phase III as an already-existing authority nobody uses, and reframed the problem in a way that stuck:

I don't think the government has an innovation problem. We have a transition problem.

Bryan Guinn

The test is three words, derives, extends, or completes, and the competition already happened at Phase I. GSA has run roughly 112 contracts and 392 task orders totaling about $12.6 billion this way since FY18. He was equally clear that it is not a sole-source shortcut, citing a February protest that GAO denied because the lineage was not real.

The panel with Ryan Connell, Dolores Kuchina-Musina, and Lori Ann Rissler, hosted by Max Reele, got specific about mechanics. Rissler's line is the one every program office needs on a wall: "You can't expect to buy outcomes at output-level prices." Kuchina-Musina, who trains government lawyers and contracting officers, described three weeks of curmudgeons who ended the course friends, and offered the most reassuring sentence of the conference to anyone in industry feeling behind: "We're all lost, and we're trying to figure out the best way to navigate the space." Connell issued the only homework assignment I have actually done since: ask your contracting team for their workflow, put the diagram into a generative AI tool, compare it against the FAR, and find out which of those steps are local policy rather than regulation. Those are the ones to remove.

Chris Hughes closed the technical content with the numbers behind the security problem. GitHub finished 2025 with one billion commits and celebrated it; by April they were on pace for fourteen billion. Meanwhile the time from disclosure to exploitation has collapsed from 771 days in 2018 to six days, then hours, and now sometimes minutes, with some vulnerabilities exploited before they are even published. He is generous about what the defensive side gets in return, citing DARPA's autonomous vulnerability work and Anthropic's Project Glasswing finding tens of thousands of vulnerabilities in critical open source over a summer, but he is honest that finding was never the bottleneck. Fixing is. And he named the thing his own profession does:

Our risk-averse, reflexive nature in cybersecurity is literally the biggest vulnerability and risk that we face.

Chris Hughes

His phrase for the state of the guidance, which is exempt from every ban I write under because it is exactly right, is "best practice rich, implementation poor."

Lloyd Evans hosted the GRC panel with Charles Nwatu and Mario Lunato, and opened it with a piece of Nashville history that turned out to be a decent metaphor. There is an Egyptian-revival tomb in the city belonging to Major Eugene C. Lewis, one of Nashville's engineers, with two sphinxes in front of it. A sphinx asks you a question and you pass or you do not.

One sphinx is AI, our uncharted unknown. The second sphinx is a very old one, which is compliance.

Lloyd Evans

The panel's most useful idea was an inversion. Stop building a compliance team to meet obligations, and start architecting so that regulatory compliance is the byproduct of how you already work. They talked about FedRAMP 20X compressing NIST 800-53 into roughly ninety key security indicators, about machine-to-machine evidence replacing screenshots, and about a bug that sat unnoticed in OpenBSD for twenty-seven years until a model found it. They were also candid about the counterweight: if AI finds vulnerabilities faster, do you have the engineering capacity to fix them at that rate? Right now, mostly no.

Kroger closed the day by refusing to give another framework.

There are many problems in GovTech, almost none of which are your fault. But if you want to be successful, every single one of them is now your responsibility.

Bryon Kroger

He talked about the three stoic virtues you can act on, justice, wisdom, and temperance, and the fourth one that unlocks them, which is courage. Then he argued that courage is defensive and what this community needs is audacity, which is where the conference gets its name. He also said the thing that most conference talks are structurally incapable of saying: most of you already know what to do. "We need to be reminded more than we need to be taught. If you just did all of the things you already know you need to do, you'd be ten times farther than you are now." He credited Chris Hughes for the compressed version, which is "less information, more implementation."

Day three: the living harness

Six workshops ran on Thursday. I picked Russ Miles's, and it is the reason this post exists.

Russ Miles on stage in a cowboy hat and black t-shirt, hands open mid-sentence, his title slide blurred behind him.
Russ Miles, who ran the workshop the next third of this post is about. The hat was a Nashville acquisition.

The Living Harness runs a full day: seven sessions, twenty-six exercises, one written artifact per session, and a rule stated in the opening pages that if you finish a session with nothing written down you have not done the session, you have read about it. The decks are published CC BY 4.0 and all the accompanying code is open source in the Habitat-Thinking org, so everything below is something you can go and use rather than something you had to be in the room for.

A word about Russ before the content, because the workshop is not really separable from the person running it. He is an introvert, which he said from the stage himself, and he spends his working life standing in front of rooms anyway. Before any of this he worked for a long time as a mental health counselor, including with couples who were divorcing, and what he took from that is that communication between two people is a miracle rather than a baseline. Five years ago he got a diagnosis he was not expecting, with a number attached to it that gave him roughly a forty percent chance of not surviving. He went through chemoradiotherapy, and he is now cancer free. He was direct about what came out the other side of it: he is only here to help people, and he has nothing to sell beyond the fact that he cares.

I've got an open source background where I give everything away literally for free, and I realized when I was in those darkest moments that's really what I'm here to do and everything else is somewhat superfluous.

Russ Miles

That is why the readiness assessment and the toolkit are both open source and why he told a room of several hundred people to take his material, adapt it, and run their own programs inside their own companies with his full authority. He charges for the day in the room, not for the ideas.

The claim underneath it sounds soft until you sit with it. The unit of software engineering is the decision, not the line of code, and we are now building systems where the decisions get made by two entirely different kinds of cognition. The shared environment those two work in is a habitat, and Russ is deliberate about rejecting the factory metaphor, having actually worked in one putting lids on bottles where nobody was interested in his creativity. Software has no equivalent of rework because software is research and development. "Factory assumes we know exactly what we're building."

The cold open

Session one opens with a Tuesday. A paginated endpoint ships. Clean code, passing tests, reviewed, merged. Then someone asks why offset pagination and not a cursor, what happens on page four thousand, why the default limit is twenty. No answer to any of them.

Nobody in that story did anything wrong. The code was good, the review was normal, the tests passed, and the theory of the system never got built.

Coherence is a property of the text: internally consistent, plausible at every level, free and instant. Understanding is a property of a person, and it has to be built deliberately. Fluent output is not a fluent engineer.

The Living Harness, session one

The first exercise of the day is called sympathy for the agent. You point your agent at a codebase and ask what it finds interesting, then read the answer for what it cannot see. The model has no memory between calls, no body, and no experience of consequence. It is fluent, forgetful, and relentlessly agreeable, and it is engineered to be coherent rather than correct.

Two readings and the gap between them

The instrument is two scores and the signed distance between them. The habitat read is the Agentic Experience Habitat Maturity Model, five levels across fourteen dimensions: dictating, commanding, regulating, orchestrating, supervising. The cognitive read is a six-level ladder across three disciplines. Subtract one from the other and you get the Build Gap, and the sign tells you what to do about it. Positive means your people think at a level your repository cannot hold, and the answer is not more training. Negative means the constraints are present but the understanding that produced them has left, and the answer is not more harness.

Coherence beats altitude. A coherent team two rungs down is healthier than an incoherent team two rungs up.

Russ Miles

Level one is dictating, where everyone starts and most people stay. It runs on two false beliefs: that what you said was clear enough, and that the next model will fix it. He does not shame it. He uses it himself to orient in an unfamiliar repository. It just produces nothing repeatable and nothing you could defend six months later.

The level that does the work

Session four is marked load-bearing on its own title slide, and the workbook tells you not to compress it. Its cold open is the best framing of the entire day, and it is one choice.

Third time this week, the same naming convention, broken the same way. Response A is to fix the name: correct, kind, thirty seconds, and permanent for exactly one file. Response B is to fix the environment so it stops recurring: slower once, free forever, and nobody has to remember. That is the whole level. Everything in the next seventy minutes is machinery for making B cheap enough that people actually pick it.

The distinction that made it click for me is between two files that most teams collapse into one. AGENTS.md says what we do here. HARNESS.md says what happens when we don't. Neither replaces the other, and a line graduates from the first to the second by answering three questions: what would count as a violation, what could see it, and when should it look. A violation you cannot describe is a preference. One that nothing can see is a wish. A check with no moment never runs at all.

A constraint is a rule with a verification slot. Without the slot it's a preference with ambition.

The Living Harness, session four

That sentence is now the second paragraph of my own HARNESS.md, which tells you how hard it landed.

The mechanism that keeps it honest is the promotion ladder: unverified, then agent-backed, then deterministic. You are allowed to write a rule that nothing checks yet, and you are required to say so. The reason is a trap I would have walked straight into: the worst harness is the one containing only the rules you already know how to automate, because it looks perfect and tells you nothing.

Three enforcement timescales run underneath. Advisory fires at edit time through hooks and warns. Strict fires at merge time in CI and blocks. Investigative runs on a schedule as garbage collection and sweeps. New constraints enter advisory and graduate on evidence, never on enthusiasm. The three loops that carry them have distinct jobs, and the point is that they are a cycle: the inner loop prevents, the middle loop reveals, the outer loop discovers and writes the rules the other two enforce. Remove one and the other two get more expensive.

The version I keep repeating to people is the meta-loop, which has four steps where most teams run three and believe they run four. Plan, execute, review, and then fix the environment. Not the code. The class, not the instance. Step four's question is the one worth stealing outright: what would have to be true in the environment for that review comment to have been unnecessary?

The failure modes of the thing you just built

The most useful hour was Russ describing how the harness itself goes wrong, because a workshop that only sells you the artifact is a workshop you should distrust.

Determinacy debt is the inverse of cognitive debt: rules whose authority outlived their meaning, and the symptom is code written correctly by every rule in the constitution that nobody can explain. The drill is to finish the sentence "this rule exists because the last time someone didn't follow it, blank happened," from memory, before looking it up. A blank page is a finding rather than an embarrassment.

Disposition theater is when the critic runs and nobody answers it. The report appears, the human clicks through, the pull request merges, and every artifact of diligence is present. "A disposition that isn't written is a disposition that wasn't made."

Habitat drift is when the harness describes a codebase that is gone. Constraints pass. They mean nothing. Green CI on a system the rules no longer describe.

And the one I have thought about most since, because I work in compliance:

Enforcement can be an avoidance strategy. The rule is written. The argument is unresolved. The rule is now doing someone's thinking for them. A constraint nobody can defend is not governance, it's a settlement nobody signed.

The Living Harness, session four

What level five actually is

Session six opens with a checklist. Unit tests pass. Integration and contract tests pass. Security scan passes. Architectural fitness functions pass. The LLM reviewer raises no objections. Then a sixth row with a question mark against it: a human signature. Every check passes and nobody can say what it does. Is this success?

The reveal is an inversion I had backwards, and I suspect most people do. At level five the agent supervises, orchestrating and self-correcting so that work arrives green from several perspectives. The human certifies, which means accepting accountability for evidence reviewed from an end-to-end business perspective.

If you thought Level 5 meant the human leaves, you have the roles inverted. And the consequence: if nobody certifies, you don't have L5. You have L1 with more compute.

The Living Harness, session six

The evidence that makes certification more than a signature has five parts, and the fourth is the one nobody collects: the decision trail, showing which choices were made knowingly against which were never made at all. The fifth is the dispositions, including the objections you overruled.

His name for the institutional failure mode is governance slop, which is the organizational version of code that runs and does the wrong thing. An audit trail recording approval timestamps and not what was evaluated. A human-review checkbox ticked without cognitive engagement. A compliance report passing every check while describing a system nobody understands. The guardrail question changes at this level, from "did the check pass" to "is the certification still trustworthy," which is a much harder question and the reason he builds guardrails that watch the guardrails.

The last piece is sentinels, which are agents that write nothing and change nothing. They watch the human. His favorite is the Reservoir Warden, which counts session length and decision volume and tells you your judgment is probably gone. He is honest that he ignores it. He walked us through his own reflection log from the Tuesday of that week: eight hours, expensive models, three separate runs of his devil's advocate agent all telling him to stop, all overruled, everything deleted at 8pm when he realized he had been on UK time since two in the morning. He put the file on the screen. It was the most credible thing anyone did on stage all week.

He gave every attendee free copies of both his books, The Sovereign Engineer and The Sovereign Apprentice, the second of which is free to anyone. He also gave the standard for when a harness is maturing rather than merely growing, and it is not the one I expected. A harness that only accumulates rules is not maturing. Retirement is the signal, because retirement takes judgment.

Dolly, again, and it fits the day:

Storms make trees take deeper roots.

Dolly Parton

What I did when I got home

Here is the part I did not plan.

The workshop ships an open-source readiness assessment that runs inside your own boundary and shares nothing. I pointed it at jeffthomas.dev, this site, which I started in December 2022, well before any of this existed. Seven hundred and eighty-six commits. Forty-four posts. A Turborepo monorepo I had been quietly avoiding upgrading for about two years, whose last commit before that week was in May.

Diagram of the ai-literacy-superpowers toolkit: a pipeline of agents that act on artifacts, a band of sentinels that act on the human, the harness underneath, and the three debts.
The shape of the thing, drawn from the toolkit itself. The pipeline acts on artifacts; the sentinels only ever report to the human. Source: github.com/Habitat-Thinking/ai-literacy-superpowers

It came back with a habitat maturity of level two, commanding, a workflow read of level one, and a gap of −0.57. It needed 1.4 more levels to reach regulating, which is the rung where the harness lives.

Then it listed the absences, and none of them were wrong. No CI in the repository at all, because the only thing in .github/ was a stale-bot config. A unit test script that printed a banner, ran zero tests, and exited green. A pre-commit hook whose test line had been commented out since March. Zero commits in the entire history co-authored by an agent. No decision records. Nothing an agent opening the repository could read.

It also found things I had never written down. Asked to generate a command for creating a blog post, it reconstructed the whole procedure from my commit history, including the two steps I forget every single time: that next-sitemap did not discover posts, so every URL was a hand-written entry, and that the LinkedIn link gets added in a follow-up commit, which has happened forty-two times since 2023. It found that sav-indopacom-2025 had been missing from the sitemap and had sat unindexed for fifteen months. I never knew.

That is the moment the workshop stopped being interesting and became useful. I had a README. What I did not have was the thing a new person, or a new agent, needs on day one.

First the harness, because it is what makes the rest survivable

The first two commits landed that night: a fifteen-line constitution in CLAUDE.md, and a HARNESS.md with six constraints and three enforcement loops. I wrote the promotion ladder into it exactly as Russ teaches it, which meant declaring some rules unverified and saying so in the table rather than quietly leaving them out.

HabitatMay 2026Now
Agent-facing instructionsnoneCLAUDE.md, fifteen lines, one owner, at capacity
Constraint documentnoneHARNESS.md, 19 constraints with verification slots
Enforcement splitnothing to split17 deterministic, 2 agent-backed, 0 unverified
CI workflowsone stale-bot config, no workflows4 (harness, lint, content-oracle, e2e)
Constraint runnernonepnpm harness, all deterministic checks in milliseconds
Independent reviewnonea read-only reviewer agent that reports and never edits
Reflection loopnoneREFLECTION_LOG.md plus dated session notes
Saved commandsnonenew-blog-post, reconstructed from 786 commits of history
Content verificationnonea content oracle over 48 documents
Appearance verificationnonevisual baselines across 5 routes, both themes
Unit test gatea stub that ran nothing and exited greendeleted, and the deletion recorded
Publish pathpush and hopepreview before main, enforced as C20

Then the stack, because now it was safe to attempt

I had been putting this off for two years. Every one of these is a migration I would not have started on a Saturday without something watching.

DependencyMay 2026Now
React18.2.019.2.8
Next.js14.0.416.3.3
Tailwind CSS3.4.04.3.3
Content pipelinecontentlayer 0.3.4Velite 0.4.0
Data layerreact-query 3.39.3TanStack Query 5.102.8
ESLint8.56 with airbnb9.39 with flat config, airbnb dropped
Storybook7.6.610.5.10
Framer Motion10.16.1613.1.1
Headless UI1.7.172.2.10
Code highlightingrehype-pretty-code 0.9.110.14.5
Text balancingreact-wrap-balancer 1.1.0native CSS text-wrap: balance
Turborepo1.11.22.10.12
Husky8.0.39.1.7
Package managerpnpm 8.13.1, unpinnedpnpm 11.24.0, pinned and cross-checked
Nodeno engines fieldpinned to 24, agreed across four workflows as C19

The constraints caught real defects while that was happening, and the pattern in what they caught is the interesting part. The site was not server-rendering any content at all, because a providers component returned null until mounted, so the metadata never reached the HTML. The web fonts had silently stopped loading, and fonts.check() reported them fine, so the constraint had to measure rendered text width instead. A twenty-three pixel reflow I had blamed on Tailwind turned out to be a doubled margin. Two React key defects. A hydration mismatch. Font files returning 404. A post that had been published by accident.

Every one of those was live, several of them for months, and every gate I had was green the whole time. That is the argument for the whole practice, in one sentence: I was not missing effort, I was missing a verification slot.

The scoreboard as of this morning is seventy-nine commits in three days, 786 to 865. Nineteen constraints, numbered C4 through C22, most of which exist because something broke first, which is the honest way to get a rule. The ones that are deterministic but still advisory each carry a written graduation criterion, because a harness containing only the rules you already know how to automate looks perfect and tells you nothing.

The one I like best is C20, which fails if a blog post reaches main without ever having existed on preview. main deploys to production. I had published unseen more than once, including this post's own predecessor. This post went to preview first, and the check is what made me do it.

What I would take back to work

Three things survived the trip.

The constraint moved and most of us are still optimizing the old one. Code generation is close to free, so the bottleneck is now upstream in knowing what to build and downstream in getting it safely to production. Pike's teleporter is the right picture: we made the flight instant and left the TSA line alone. If you are pouring AI into the part of your process that was already fast, you are amplifying a sub-optimization, which is Pereira's whole point about zooming out before you tune.

Write the harness before you need it, then let it earn its rules. Do not try to author it complete. Russ starts nearly empty and grows it from surprises. The reflection log is the cheapest possible practice and it is the one he teaches first, before any constraint exists: capture what the agent did that you did not want. Promote the ones that recur. Retire the ones whose reasons expired. The value is not the document, it is that a rule with a verification slot is a rule, and a rule without one is a preference with ambition.

Run the assessment on something you actually own. The workbook is blunt that using your own repository is the most valuable track and the most tempting to shortcut. It was uncomfortable to have a tool tell me that a site I have maintained for four years had no way to onboard anybody, and that discomfort is the entire product. Everything I fixed in the three days after was visible from the outside the whole time. Nobody had looked.

I got most of a decade of accumulated intent debt paid down in a weekend because a workshop in Nashville convinced me the environment was the problem rather than the prompt. That is a good return on a plane ticket.

The rest of what I got was the city. Bands on Broadway on a Tuesday afternoon, veterans playing both happy hours, Steve across a table after ten years, and a room full of people going quiet when the music changed to Dolly.

Three conference attendees seated in the venue, smiling at the camera, with Google Public Sector signage on the balcony behind them.
The council of Jeffs. If you know, you know.

You'll never do a whole lot unless you're brave enough to try.

Dolly Parton

Lower Broadway in Nashville at dusk, neon signs lit, traffic and people at the crosswalk under a pink sky.
Broadway at dusk on the last night. Worth the trip before a single session started.

See the associated LinkedIn post.

main
git log
Comments

To leave feedback or questions, simply login using your preferred social network. I will read and answer your comments promptly, but please keep in mind that they will be public.

No comments yet.
main