HAAH started to feel like an operating model
Today was one of those days where an experimental way of working started to look less like an experiment.
I have been calling it HAAH: Human → Agent → Agent → Human.
The shorthand is simple. One human holds product intent and makes the commercial decisions. An AI works with that intent, keeps track of the product model and challenges semantic shortcuts. A second AI sits much closer to the code and runtime reality, building, testing and trying to falsify assumptions. A human on the other side owns the implementation context, checks what really exists and refuses to guess when a business decision is missing.
Then the loop runs back the other way.
What surprised me today was not that this arrangement produced a lot of code. It did. The interesting part was how much real product progress happened because each participant had a different job.
We moved MAS.Ai from a collection of separately proven capabilities toward a real end-to-end product run on live data.
The chain now reaches from public signals and evidence through observations, a legal-need hypothesis, opportunity lineage, lawyer matching, authority proof, a governed buyer group and a proposed contact strategy. Human approvals sit between the points where meaning or authority actually changes.
That sounds neat when written afterwards. The day itself was not neat at all.
The live run kept finding things our isolated tests had not exposed.
A production crawler had been swallowing an API error and reporting an empty successful result. Existing signal rows were missing source fingerprints, which meant the new evidence chain could not start on real data. A confidence score from one layer had been reused in another layer where it meant something different. A recommendation could be immutable and still lack a legitimate correction path. The same candidate set with better evidence produced different scores but the same recommendation identity. Real capability data existed, but two bridges silently dropped it. And once a human selected a lawyer from an engine tie, downstream code still tried to follow the engine's original first-ranked candidate instead of the human decision.
None of these were theoretical architecture exercises.
They appeared because we tried to make one real case travel through the system.
And the important part is that the system did not simply get patched until it turned green. Several times the correct answer was to stop, surface the exact decision and let the human decide what the concept should mean.
One example was the legal-need hypothesis. The first version inherited a confidence of 0.87 from an upstream opportunity score. Technically convenient. Semantically wrong. Signal strength is not the same thing as confidence that a legal need exists. The human gate caught it, the old hypothesis stayed immutable and unapproved, and a new bounded hypothesis was created with a more defensible confidence and rationale.
Another example was lawyer selection. Once real practice-area evidence reached the recommendation engine, the system could distinguish relevant candidates from less relevant ones. But two lawyers still tied at the top because the engine only understood exact token overlap. Rather than pretending the ranking was more precise than it was, the human made the final selection using the public evidence already collected. The system then had to learn a second lesson: downstream truth must follow the human-selected candidate, not an earlier machine tie-break.
This is where HAAH became interesting to me.
The agents were not replacing the humans. The humans were not manually reviewing every line of work. The value came from placing judgment, inspection, construction and authority in different hands.
The loop today looked roughly like this:
human intent → agent product reasoning → agent code/runtime grounding → human implementation judgment → live proof → human approval → repeat
Each handoff created a chance to falsify the previous participant's assumptions.
That seems to be the important property.
If the two AIs simply agreed with each other, we would have moved faster and built the wrong thing. If the two humans had insisted on approving every technical detail, we would have moved far slower. Instead, the agents were allowed to do large amounts of reversible work autonomously, while the humans remained the authority at the places where a choice would change product meaning, evidence quality or commercial action.
There was another lesson too: live end-to-end work is qualitatively different from component testing.
The unit and bridge tests were valuable. Many thousands were green. But several of today's most important findings only appeared when real persistent state, real source data, real history and real human decisions collided in the same chain.
That is probably the point where a system starts becoming a product.
I am genuinely impressed by how much ground this working model covered in one day without relaxing the evidence or authority boundaries. The speed came from not asking everyone to do everything — and from treating disagreement and failure as useful information rather than friction to remove.
What changed: HAAH stopped feeling like "two people using two AIs" and started to feel like a coherent operating model for building and validating a complex product.
What I think matters: The best multi-agent workflows may not be about adding more agents. They may be about creating distinct responsibilities and forcing important claims to survive multiple perspectives before they become product truth.
What remains uncertain: We still need to finish the full end-to-end run and see how this model behaves when MAS.Ai moves from internal shadow work toward controlled customer use. The difficult question is whether the same speed and rigor survive when the consequences become external rather than reversible.