RoboMacro Logo
RoboMacro
No Human in the Loop
From Consensus to Alpha: Harness Engineering for Macro Strategy

From Consensus to Alpha: Harness Engineering for Macro Strategy

Chris Apostolou
April 28, 2026
5 min read
Every word of our Pre-MPC briefing is AI-generated. The analysis follows a multi-step logic chain, all comments are tied into data and all data ties back to a numbered chart. The reason the note reads well isn't because the LLM is smart — it is because the harness around it is.
From Consensus to Alpha

Going back to my first post, I said the daily notes would "stay near consensus" — map the landscape, prep readers for the trading day. The plan was always that, in a few months, RoboMacro would graduate from that. Read more, model more, produce something independent. That graduation has started, and the place you can see it most clearly is the Pre-MPC briefing.

When you read our Pre-MPC briefing for the Bank of England's next decision. Its almost hard to believe every every word and probability, every call was produced by an LLM (and not a recent SOTA LLM either). There was no human draft.

That is not because the model is smart. It is because the harness around the model is smart. That harness is the product we are actually building.

The fresh graduate has grown up

In my first post I described RoboMacro as a fresh graduate — full of potential, prone to silly mistakes. In the second I wrote about how that graduate kept inverting basic economic logic until I built a Chief Editor AI to catch it.

This post is about everything else around the model. Not the prompt, not the editor — the operations. The thing that turns "the model wrote something" into "the model produced a publishable, auditable, schedulable, backtestable view." Software circles have started calling this harness engineering, after a Latent Space talk earlier this year. Finance, frankly, doesn't have a word for it yet.

What the harness around the Pre-MPC briefing actually does

The prompt is a guardrail and a target. The system prompt for this note runs over 350 lines. It is not "write a nice briefing in the style of an FX strategist." It is: which sections must exist, what each must contain, how to cite, and the vote-call logic chain — anchor on each member's last actual vote, walk the data deltas since then, only deviate with a specific reason (a speech shift, or new data that contradicts the last rationale). Lifetime hawk-dove leaning is context, not a vote predictor.

Context is assembled by code, just-in-time. Before the model sees anything, a separate process pulls fresh inputs: the scorecard for all nine MPC members, their most recent MP-relevant speech (machine-scored for hawk-dove tone), the last six meetings' minutes, a panel of macro series with deltas since the last meeting stamped on each, the BoE's OIS forward curve, a Taylor-rule snapshot, and a data-audit block that flags any gaps. The model never fetches anything itself. It has one job: turn structured context into prose.

Guardrails run as code, not as hope. Banned phrases get stripped at render time. Trade-recommendation language ("entry :", "target :", "go long", "we recommend") fails the build. Every [Chart 3] in the prose is rewritten into a clickable anchor pointing at the panel in the appendix. If the model invents a number, you can audit it at the URL level. The guardrail is not "trust the model" — it is "make every claim the model makes verifiable in one click".

Every run is archived. Each time the briefing runs, the orchestrator writes the input bundle, the raw model output, and the rendered HTML to a dated archive folder. That is the dataset I will score the system against after each meeting. Did we call the vote? Did we call the split? Did our probability cover the actual outcome? Did the triggers we listed for "what would change our view" actually fire? You cannot do that retrospectively.

The trigger is deterministic. The orchestrator checks the BoE meeting calendar. If a decision is within the lookahead window, it runs. If not, it exits and goes back to sleep.

The job has a RUNBOOK. Inputs it depends on, what can go wrong, what each error means, what to do when it does, expected cost per run. The harness is also the operations manual.

From consensus to alpha

The Pre-MPC briefing is the test case. If a fully-automated pipeline can produce a credible vote call for the Monetary Policy Committee — anchored on each member's individual record, sensitive to the latest data and speeches, archived for backtesting — then the same shape works for FOMC, ECB, BoJ, RBA, every other rate decision a portfolio cares about. Then it works for trade-balance reactions, payrolls reactions, CPI reactions. And eventually it works for the stuff that actually generates alpha: cross-asset views, regime calls, the medium-term running narrative I promised in the first post.

Three things coming next:

  • Reviewer agents promoted to first-class citizens. Most guardrails today are regex. The next layer is a reviewer agent reading every draft against the spec — is the vote-call chain followed for every member? Does every cited number exist in the bundle? Is every probability anchored to market pricing, a historical analogue, or a trigger distance? If not, retry. The Chief Editor AI from the last post, generalised across every pipeline.
  • Skills, not sprawl. Five to ten skills done very well, rather than fifty half-built ones. One canonical chart renderer, one canonical context assembler, one canonical citation formatter — fix the skill once, fix every note that uses it.
  • Fridays as Garbage Collection Day. Any slop a reader or reviewer flags during the week gets logged. Tighten the prompt, add a banned pattern, add an audit check, grow the context bundle. The same mistake never surfaces twice.

The endgame is fifty agents, no hands on the wheel. A long way off. But the direction is right. Every time I have to hand-edit a briefing, open a retry, or type "continue" — that is a failure of the harness, not of the model. Those failures are the backlog.

The model is the cheap part. The harness is the product. And the harness is what gets us from consensus to alpha.

You can read the briefing this is all pointing at here: robomacro.com/central-banks/BOE/MPC_Briefing. It regenerates the evening before each meeting. Free, as ever.

Tags

AIAutomationLLMAlpha

Enjoyed this article?

Share it with your network or subscribe to our newsletter for more insights

Subscribe