We Hardened the Machine, Not the Scoreboard
By Messy Virgo — July 22, 2026
Most CT threads about “AI trading” end the same way: a chart, a claim, a vibe.
We spent the last thirty days doing something less glamorous. We ran the AI investment council for real — on live micro funds — and used every break, edge case, and almost-silent failure as fuel to harden the machine.
If you have not seen it before: the council is Messy’s board-style fund workflow. Specialized agents (portfolio managers, risk, a Chair) deliberate from dated evidence, record a formal portfolio decision, and only then can anything move toward a concrete trade plan and on-chain execution. It is not a single model firing a buy button. Full primer: Decision Pipeline Part 1.
This is not a performance report. It is a receipt for workflow integrity.
Note: Our funds remain pre-live and human-reviewed. Micro Guru vaults are for stressing the pipeline, not for flexing returns. Proof before autonomy — always.
The month in one sentence
We battle-proofed the path from screening → council → plan → sign → reconcile so it fails closed and stays inspectable — instead of optimizing a leaderboard nobody should trust yet.
By the numbers
Evidence from platform git and live council sessions on mvf-base01 (Guru) and mvf-base02 (Guru) (roughly June 22 – July 22, 2026):
| Receipt | Count |
|---|---|
| Platform commits | ~464 |
| Council sessions (both funds) | 37 (Jul 2–21) |
| Executed & reconciled | 31 |
| Maintained current / no mutate / cancelled | the rest — still useful, still inspected |
Intensive session cadence kicked in early July. The shipping underneath started earlier — and it never stopped.
Weekly detail lives on the Build Log. Prior context: Decision Pipeline Part 2 and the Q2 recap.
Beat 1 — Decision is not execution
A council resolution is not a trade. The gap between “we decided” and “something moved on-chain” is where most AI systems go quiet — and where we spent the month making noise.
We tightened tradability probing so candidates face real route and cost checks before they look investable. Quote-sized cost checks now run on both sides of a probe. The approval gate needs real price headroom before a trade can sign. Pre-broadcast rejections classify as signing-blocked, not silent failures that pretend nothing happened.
The human review gate is still on. That is deliberate. We are watching the full path behave under stress — not pretending autonomy is finished.
Beat 2 — Planner became an optimization problem
For a while, rebalance planning followed a greedy rule sequence. Fine for scaffolding. Not fine for a machine you want to trust when constraints collide.
We retired that path. A CP-SAT constraint solver (OR-Tools) is now the sole rebalance planner — trades as an optimization problem, aligned to ratified posture, with required-exit and direction caps treated as governance, not suggestions.
If the book should move, the plan has to survive constraints. If it cannot, the session should say so — not invent a convenient sequence.
Beat 3 — Show the decision, not just the trade
Private debug dumps do not build trust. Public minutes do.
Fund pages now expose a readable Council surface: meetings as documents — traded or held, executed legs, attributed deliberation, Chair decisions, provenance hashes — instead of an internal markdown spill. The inspector got a single-page redesign so operators can follow a run without tab archaeology.
Inspect the proof yourself:
These are micro funds. The point is not the NAV. The point is that the decision trail is public.
What we were not optimizing
Not PnL. Not a token call. Not a “look how smart the agents are” highlight reel.
We were optimizing for a boring property: when the workflow is wrong, it should be obvious — and when it is right, anyone should be able to inspect why.
That is how you earn the right to remove training wheels later. Not by posting a green chart from a fifty-dollar vault.
Proof before autonomy
Thirty days. Hundreds of commits. Dozens of live council runs. A planner that became a solver. A signing path that fails closed. Minutes you can read without a staff login.
The scoreboard can wait.
The machine cannot.
→ Build Log · mvf-base01 (Guru) · mvf-base02 (Guru)